Добрый день!
Может уважаемые гуру внесут ясность для меня в следующем вопросе:
Через map файл я подключаю shape слой береговой линии (coastline\processed_p - 320Mb) и выдаю его через WMS mapserver а затем в Openlayers. Причем, этот слой на локальном сервере, подгружается медленнее слоя vmap0.tiles.osgeo.org/vmap0. Оба слоя используются в качестве основных в openlayers.
Почему так? Как сделать отображение локального шейпа в OL такимже быстрым как Vmap0? Нужно ли применить tile indexes к локальному шейпу? Или такую конструкцию вообще нерекомендуется использовать?
Как реализовать Vmap0 локально?
-
- Активный участник
- Сообщения: 114
- Зарегистрирован: 20 апр 2010, 17:33
- Репутация: 0
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как реализовать Vmap0 локально?
Как я понимаю, вы используете mapserver, которому скармливаете шейп. Видимо, кроме того, шейп вы положили такой, какой он был изначально.
Медленно работает потому, что на каждый запрос приходится делать выборку из большого шейп-файла и отрисовывать запрошенные данные. Что можно ускорить?
Медленно работает потому, что на каждый запрос приходится делать выборку из большого шейп-файла и отрисовывать запрошенные данные. Что можно ускорить?
- 1) Вместо одного шейп-файла создать разные файлы для разных масштабов (чем мельче масштаб, тем сильнее генерализация в файле). При этом создать для каждого файла пространственные индексы. Это ускорит выборку данных и процесс отрисовки.
2) Заранее построить растровые тайлы для разных масштабов и, таким образом, работать с уже готовыми растрами. Это позволит исключить процесс отрисовки и очень ускорить процесс выборки.
-
- Активный участник
- Сообщения: 114
- Зарегистрирован: 20 апр 2010, 17:33
- Репутация: 0
Re: Как реализовать Vmap0 локально?
Спасибо Дмитрий!
Именно так...
А не подскажите ссылочку где можно почитать о подобной реализации?
И не ускорит ли процесс , если заменить картинки на слои с запросами к бд?
Именно так...
А не подскажите ссылочку где можно почитать о подобной реализации?
И не ускорит ли процесс , если заменить картинки на слои с запросами к бд?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как реализовать Vmap0 локально?
Реализация первого пути делается довольно просто. Берете какую нибудь ГИС (не знаю таких, в которых такой возможности нет) и производите генерализацию. В результате получаете упрощенную версию шейп-файла. Потом в map-файле в свойствах слоя задаете параметры MINSCALE и MAXSCALE, которые настраивают отображать или не отображать данные для соответствующих масштабов (чуть более подробнее об этом в документации по mapserver, смотрите раздел "оптимизация").Silentium писал(а): А не подскажите ссылочку где можно почитать о подобной реализации?
Как реализовать второй путь я вам не могу подсказать, может кто-то другой ответит. А вообще можно не ждать ответа здесь, а спросить сразу в разделе "веб-картография".
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей