首页 文章

为什么Esri Extent加载一个 Map 图层而不是另一个? ArcGIS Javascript API

提问于
浏览
1

我现在使用ArcGIS Javascript API(v2.4)遇到了最棘手的问题 . 我只是尝试使用范围创建ESRI地形图的实例,然后添加一个图层 .

这是有效的代码 . 我创建一个范围,然后是 Map ,然后是街道 Map 图层,然后最后添加该图层 .

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);

我知道故障层的服务器有效,因为如果我创建一个没有范围的 Map ,它会显示完整的世界图像服务器,所以看起来创建一个包含一个图层和一个范围的 Map 是有效的,同时创建一个带有不同的层但相同的程度不起作用 .

有什么想法吗?

1 回答

  • 2

    在第二个示例中,图层位于 web Mercator 中 .

    尝试将范围从 geographic 转换为 web Mercator ,然后在 Map 构造函数中使用它 .

    转换范围的最简单方法是使用 esri..geometry.geographicToWebMercator .

相关问题