Как реализовать Vmap0 локально?

Кроме QGIS
Ответить
Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

Как реализовать Vmap0 локально?

Сообщение Silentium » 15 фев 2011, 14:29

Добрый день!
Может уважаемые гуру внесут ясность для меня в следующем вопросе:
Через map файл я подключаю shape слой береговой линии (coastline\processed_p - 320Mb) и выдаю его через WMS mapserver а затем в Openlayers. Причем, этот слой на локальном сервере, подгружается медленнее слоя vmap0.tiles.osgeo.org/vmap0. Оба слоя используются в качестве основных в openlayers.
Почему так? Как сделать отображение локального шейпа в OL такимже быстрым как Vmap0? Нужно ли применить tile indexes к локальному шейпу? Или такую конструкцию вообще нерекомендуется использовать?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Как реализовать Vmap0 локально?

Сообщение KolesovDmitry » 15 фев 2011, 14:58

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

Медленно работает потому, что на каждый запрос приходится делать выборку из большого шейп-файла и отрисовывать запрошенные данные. Что можно ускорить?
  • 1) Вместо одного шейп-файла создать разные файлы для разных масштабов (чем мельче масштаб, тем сильнее генерализация в файле). При этом создать для каждого файла пространственные индексы. Это ускорит выборку данных и процесс отрисовки.
    2) Заранее построить растровые тайлы для разных масштабов и, таким образом, работать с уже готовыми растрами. Это позволит исключить процесс отрисовки и очень ускорить процесс выборки.

Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

Re: Как реализовать Vmap0 локально?

Сообщение Silentium » 15 фев 2011, 15:12

Спасибо Дмитрий!
Именно так...
А не подскажите ссылочку где можно почитать о подобной реализации?

И не ускорит ли процесс , если заменить картинки на слои с запросами к бд?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Как реализовать Vmap0 локально?

Сообщение KolesovDmitry » 15 фев 2011, 19:18

Silentium писал(а): А не подскажите ссылочку где можно почитать о подобной реализации?
Реализация первого пути делается довольно просто. Берете какую нибудь ГИС (не знаю таких, в которых такой возможности нет) и производите генерализацию. В результате получаете упрощенную версию шейп-файла. Потом в map-файле в свойствах слоя задаете параметры MINSCALE и MAXSCALE, которые настраивают отображать или не отображать данные для соответствующих масштабов (чуть более подробнее об этом в документации по mapserver, смотрите раздел "оптимизация").

Как реализовать второй путь я вам не могу подсказать, может кто-то другой ответит. А вообще можно не ждать ответа здесь, а спросить сразу в разделе "веб-картография".

Ответить

Вернуться в «Свободные, бесплатные, открытые ГИС»

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

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