为啥 Esri 范围为一个地图图层加载而不为另一个图层加载? ArcGIS Javascript API

Posted

技术标签:

【中文标题】为啥 Esri 范围为一个地图图层加载而不为另一个图层加载? ArcGIS Javascript API【英文标题】:Why does an Esri Extent load for one map layer but not for another? ArcGIS Javascript API为什么 Esri 范围为一个地图图层加载而不为另一个图层加载? ArcGIS Javascript API 【发布时间】:2011-11-09 14:26:39 【问题描述】:

我现在在使用 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(街道地图);

但是,当我尝试使用单独的服务器执行相同操作时,它不起作用。

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(底图);

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

有什么想法吗?

【问题讨论】:

【参考方案1】:

在您的第二个示例中,图层位于 web Mercator 中。

在地图构造函数中使用之前,尝试将范围从 geographic 转换为 web Mercator

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

【讨论】:

太棒了。工作完美。非常感谢。

以上是关于为啥 Esri 范围为一个地图图层加载而不为另一个图层加载? ArcGIS Javascript API的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS api for javascript——加载查询结果,单击显示信息窗口

ArcGIS api for javascript——加载查询结果,悬停显示信息窗口

esri-leaflet入门教程-加载各类图层

api google 中的 Esri 基本地图

arcgis api for js 3.X版本加载矢量json文件,并缩放至图层

TypeError: esri.layers.WMSLayer is not a constructor