Кеширование карты ArcGis из сервиса OpenLayers

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
DevGis
Участник
Сообщения: 78
Зарегистрирован: 29 авг 2013, 10:55
Репутация: 1

Кеширование карты ArcGis из сервиса OpenLayers

Сообщение DevGis » 11 ноя 2013, 09:11

Код: Выделить всё

var wmslTest = new OpenLayers.Layer.WMS( 
    'ArcGisTest',
    'http://192.1681.*.*:6080/arcgis/services/Test/MapServer/WmsServer', 
    { 
    LAYERS: '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18',
    STYLES: '',
    transparent: true
},
{
        opacity: 1,
        isBaseLayer: true,
        visibility: false,
        projection: 'EPSG:102113'
}
);
    map.addLayer(wmslTest);
Есть карта на ArcGis Server 10.1. Когда эта карта просматривается в ArcMap, то при просмотре кеш строится (повторно карта отображается быстро). Когда карта просматривается в браузере с помощью OpenLayers по протоколу WMS, то кеш не строится (карта всегда отображается медленно, т.к. тайлы все время генерятся из кучи баз данных)

Можно ли написать (используя OpenLayers) код, чтобы карта кешировалась?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Кеширование карты ArcGis из сервиса OpenLayers

Сообщение ericsson » 11 ноя 2013, 09:42

Не совсем понимаю, как вы собираетесь вообще что-то кэшировать средствами самого OL, но вот по поводу кэширования WMS, скажу, что это изобретение велосипеда, при чем не современного, а такого с одним здоровым колесом впереди и маленьким сзади. Больше пяти лет назад была в мире такая идея, соорудить WMS-C, но здраво рассудив, что WMS и кэширование - две достаточно противоречивые вещи, люди сошлись на использовании TMS, то есть просто заранее сгенерированных тайлов, без рудиментов WMS в виде обратной совместимости. Почитайте http://wiki.osgeo.org/wiki/WMS_Tile_Caching на эту тему.

Но. Если вам действительно нужно кэшировать - http://tilecache.org/ вам в помощь.

DevGis
Участник
Сообщения: 78
Зарегистрирован: 29 авг 2013, 10:55
Репутация: 1

Re: Кеширование карты ArcGis из сервиса OpenLayers

Сообщение DevGis » 11 ноя 2013, 10:08

Если используется только ПО от ArcGis то это возможно: в ArcGis Service у меня есть сервис с картой. В arcmap просматриваю карту - карта кешируется. Еслии использовать ArcGis for JS API, то карта тоже будет кешироваться?.

Если применять mapproxy то и карта OSM кешируется и отображается по пртоколу WMS. Просматривается она в openlayers и кешируется. Так что кеширование при просмотре в OpenLayers возможно.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Кеширование карты ArcGis из сервиса OpenLayers

Сообщение ericsson » 11 ноя 2013, 11:39

OpenLayers - всего лишь front end библиотека. Она вообще никак не влияет на то, что происходит с тайлами, которые передаются по протоколу HTTP между сервером и browser-ом. Что и как кэшируется, может определять browser и сервер. Первый - путем сохранения на диске того, что он получил, второй - путем отдачи вместе с тайлами соответствующих HTTP-заголовков. Но это не то, что вы хотите.
Если вы хотите, чтобы при запросе какого-то фрагмента он получался всегда "быстро", то есть хотите свести его получение к отправке HTTP-запроса и получению уже физически существующего на сервере тайла вместо генерации этого тайла из базы, то вам нужно поставить между сервером, генерирующим тайлы и клиентом, их показывающим (browser-ом) нечто, что будет складывать у себя тайлы и отдавать их клиенту при повторном запросе.
Я не работаю с ArcGIS и не знаю, как именно там это реализуется. Объяснил общий случай, который работает с любым ПО, которое использует HTTP для передачи тайлов по WMS.
Проблема может быть только одна: один клиент может запрашивать с WMS-сервера тайлы, чтобы заполнить текущее окно, а другой - целые куски, совпадающие с экстентом текущего окна. В первом случае кэширование возможно, потому что тайлы запрашиваются одинаковые. А во втором - нет, потому что нет никаких тайлов, и экстент у каждого пользователя - уникальный. Потому я и говорю о пользе TMS, там все всегда однозначно.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя