ArcGIS Server发布的地图服务不显示地图的原因分析

最近开始接触ArcGIS Server和ArcGIS API For JavaScript,遇到了本地地图服务发布成功,但地图却不能正常显示的问题,后来问题终于解决,把发现的问题总结在这里,希望对有类似问题的小伙伴有所帮助。

申明:这里说的地图不显示,将ArcGIS Server地图服务发布不成功排除在外。


刚开始接触ArcGIS API For JavaScript开发,加载的都是ESRI提供的在线地图服务,此时的加载代码如下:

esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer"); 

后来我自己电脑的Server成功发布了地图服务,于是将地图服务更改成自己的路径,加载代码如下:

esri.layers.ArcGISTiledMapServiceLayer("http://localhost:6080/arcgis/rest/services//Demo/GDP2013/MapServer");  

于是地图框右下角的ESRI标识显示出来,但地图怎么都不显示。通过不断的网络搜索,我终于发现了问题:我发布的地图服务,没有做地图缓存处理,此时加载地图的接口应该使用 esri.layers.ArcGISDynamicMapServiceLayer(URL)。对于.ArcGISDynamicMapServiceLayer 和 ArcGISTiledMapServiceLayer 的使用,做以下说明:

(1)如果访问的是经过地图缓存处理的地图服务,则应使用接口ArcGISTiledMapServiceLayer(URL),ESRI提供的在线地图服务应使用ArcGISTiledMapServiceLayer(URL)来加载(个人揣测在线地图服务都经过地图缓存处理);

(2)如果访问的是没有经过缓存处理的地图服务,则应使用接口ArcGISDynamicMapServiceLayer(URL),如一般个人通过ArcGIS Server发布的地图服务,极有可能没做过缓存处理,则应使用接口ArcGISDynamicMapServiceLayer(URL)。


其实,通过接口名字,也是能看出端倪的,Tile就有瓦片的意思,寓意做过切片处理;Dynamic是动态的意思,没有做过切片处理,只能动态加载了。

这个问题一般出现在新手身上,假如真遇到了,希望能尽快找到答案。


你可能感兴趣的:(ArcGIS,API,For,JavaScript)