2014-01-08 4 views
0

Я хочу отобразить растровый слой на моей странице с помощью API-интерфейса ArcGIS javascript. Загрузка функционального слоя - это просто и удобно, но растровый слой дает мне трудное время.Отобразить растровый слой с помощью API-интерфейса ArcGIS Javascript

Описание: MapService: http://ags.servirlabs.net/ArcGIS/rest/services/ReferenceNode/TRMM_30DAY/MapServer/0 который является растровым слоем.

У вас есть идеи по поводу того, как это сделать?

ответ

0

Вы можете добавить растровые слои на карту, используя ArcGISTiledMapService слой, например:

// assuming 'map' is a reference to your map 
map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer("http://ags.servirlabs.net/ArcGIS/rest/services/ReferenceNode/TRMM_30DAY/MapServer")); 

Есть некоторые хорошие примеры по API сайта ArcGIS JavaScript здесь:

https://developers.arcgis.com/en/javascript/jssamples/#tiled_layers

One вещь, о которой нужно знать с черепичными слоями, состоит в том, что вы можете добавлять только плиточные слои на свою карту, если они используют одну и ту же пространственную ссылку. Вы не можете добавить слой как черепичный слой с другой пространственной ссылкой, поскольку его кеш уже создан, используя его пространственную привязку. Вы можете добавить слой в качестве динамического слоя, чтобы повторно спроектировать его.

+0

Спасибо Симон за ваш быстрый ответ, но вы подходите, не работает для меня. Здесь я использовал указанную вами ссылку и заменил URL-адрес MapService на свой url и размещался на [jsfiddle] (http://jsfiddle.net/4DCjL/2/). Растерслойщик не отображается :( – Beakal

+0

Я бы предложил скопировать один из фрагментированных образцов с сайта ESRI, с которым я связан, например, с этим: https://developers.arcgis.com/en/javascript/jssamples/layers_ags_tiled .html. Создайте новую страницу и вставьте код как есть. Запустите его, и он должен работать. Затем замените только URL-адрес на слой esr-tiled вашим URL-адресом. Затем он должен работать, а если нет, он предлагает проблема с сервисом. Предполагая, что это действительно работает, посмотрите на код на этой странице (это всего несколько строк) и убедитесь, что вы перенесите его в свой проект. Убедитесь, что инструкция require правильно загружает модули. – Kate

+0

именно то, что я сделал, скопировал и вставил образец кода и заменил URL-адрес службы, но не повезло. Наконец, я смог выполнить эту работу с помощью ** DynamicLayer ** -> Только DynamicLayer позволил бы мне отображать растровый слой, благодаря вам упомянув это в вашем более раннем ответе. И еще один чувак на форуме также предложил мне e ** ArcGISDynamicMapServiceLayer **, который отлично работает, как показано здесь на [jsfiddle] (http://jsfiddle.net/JSkinn3/KmrGd/) – Beakal

1

Как вы добавляете уровень сервиса карты, зависит от того, кешируется ли служба. Посмотрите на http://ags.servirlabs.net/ArcGIS/rest/services/ReferenceNode/TRMM_30DAY/MapServer в браузере и видим следующее:

Single плавленый Карта Cache: ложные

Поскольку это не кэшируются, вы должны использовать ArcGISDynamicMapServiceLayer, не ArcGISTiledMapServiceLayer. Если он был кэширован, вы можете использовать один из них.

map.addLayer(new esri.layers.ArcGISDynamicMapServiceLayer(
    "http://ags.servirlabs.net/ArcGIS/rest/services/ReferenceNode/TRMM_30DAY/MapServer")); 

Обратите внимание, что если у вас есть сервис с несколькими слоями в нем, и вы хотите, чтобы отобразить только часть из них, вы бы создать ArcGISDynamicMapServiceLayer, а затем использовать его метод setVisibleLayers, чтобы установить, какие слои должны быть видимыми. В этом случае вам не нужно беспокоиться об этом, потому что ваша карта имеет только один слой.

Смежные вопросы