Почему Esri Extent загружается для одного слоя карты, а не для другого?ArcGIS Javascript API - PullRequest
1 голос
/ 03 сентября 2011

У меня сейчас самая странная проблема с использованием 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);

Я знаю, что сервер неисправного слоя работает, потому что, если я создаю карту без экстента, он показывает сервер изображений всего мира, поэтому создается впечатление, что создание карты с одним слоем и экстентом работает при создании карта с другим слоем, но с тем же экстентом не работает.

Есть идеи, почему?

1 Ответ

2 голосов
/ 03 сентября 2011

Во втором примере слой находится в web Mercator .

Попробуйте преобразовать экстент из географический в web Mercator , прежде чем использовать его в конструкторе карты.

Самый простой способ конвертировать экстент - использовать esri..geometry.geographicToWebMercator.

...