我现在使用ArcGIS Javascript API(v2.4)遇到了最棘手的问题。我只是尝试使用范围创建ESRI拓扑图的实例,然后添加图层。
这是有效的代码。我创建一个范围,然后是地图,然后是街道地图图层,然后最后添加该图层。
var startExtent = new esri.geometry.Extent(-71.5, 42, -71, 42.5, new esri.SpatialReference({wkid:4326}) ); map = new esri.Map("map_canvas", { extent: startExtent,fitExtent:false }); var streetmap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"); map.addLayer(streetmap);
但是,当我尝试使用单独的服务器执行相同操作时,它不起作用。
var startExtent = new esri.geometry.Extent(-71.5, 42, -71, 42.5, new esri.SpatialReference({wkid:4326}) ); map = new esri.Map("map_canvas", { extent: startExtent,fitExtent:false }); var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"); map.addLayer(basemap);
我知道故障层的服务器有效,因为如果我创建一个没有范围的地图,它会显示完整的世界图像服务器,因此看起来创建一个包含一个图层和一个范围的地图是有效的,同时创建一个使用不同的图层进行映射,但相同的范围不起作用。
任何想法为什么?
答案 0 :(得分:2)
在第二个示例中,图层位于 web Mercator 中。
尝试将范围从地理转换为 web Mercator ,然后在地图构造函数中使用它。
转换范围的最简单方法是使用esri..geometry.geographicToWebMercator
。