Отображение большого количества объектов на карте
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Отображение большого количества объектов на карте
Добрый день.
Мне необходимо отобразить на веб-карте большое количество объектов (около 500 000).
Понравился Leaflet, но такое количество объектов при использовании кластеризации он не потянул (использовал модуль для Qgis - gis2leaf).
Желательна интерактивность карты или хотя бы присутствие подписей объектов не ней. Она будет использоваться во внутренней сети компании.
Посоветуйте решение данной задачи.
Мне необходимо отобразить на веб-карте большое количество объектов (около 500 000).
Понравился Leaflet, но такое количество объектов при использовании кластеризации он не потянул (использовал модуль для Qgis - gis2leaf).
Желательна интерактивность карты или хотя бы присутствие подписей объектов не ней. Она будет использоваться во внутренней сети компании.
Посоветуйте решение данной задачи.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 02 окт 2011, 16:58
- Репутация: 1
Re: Отображение большого количества объектов на карте
Добрый день, Alex_mk
Для отображения данных в векторном виде можно использовать Openlayers 3 с webgl-рендерингом:
http://dev.camptocamp.com/files/ol3/web ... oints.html
Иначе нужен WMS сервис, отдающий уже готовую картинку.
Для отображения данных в векторном виде можно использовать Openlayers 3 с webgl-рендерингом:
http://dev.camptocamp.com/files/ol3/web ... oints.html
Иначе нужен WMS сервис, отдающий уже готовую картинку.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: Отображение большого количества объектов на карте
VolandF, а можно еще использовать geoserver или geomixer? или они не потянут такого количества объектов?
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Отображение большого количества объектов на карте
Alex_mk писал(а):VolandF, а можно еще использовать geoserver или geomixer? или они не потянут такого количества объектов?
Иначе нужен WMS сервис
- SergeyRyzhkov
- Гуру
- Сообщения: 909
- Зарегистрирован: 02 июл 2014, 19:13
- Репутация: 203
- Ваше звание: GP-экотеррористы
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Отображение большого количества объектов на карте
А причем тут серверная часть?Alex_mk писал(а):VolandF, а можно еще использовать geoserver или geomixer? или они не потянут такого количества объектов?
Если я Вас правильно понял, то у Вас большое количество векторных данных, которые отдаются клиенту для рендеринга. Задача сервера всего лишь отдать порцию данных по запросу.
То есть тормоза - это клиент.
Способы:
- смотрите в сторону Vector Tiles (серверная часть + клиентская)
- уменьшайте объем передаваемых данных, используя предварительное "упрощение" геометрий для различных масштабов (это серверная часть)
- уменьшайте объем передаваемых данных, используя TopoJSON вместо GeoJSON (серверная часть + клиентская)
- смотрите в сторону d3 с Leaflet (чтобы уменьшить тормоза)
- ждите релиз leaflet, скоро ребята разродятся. Идет активная работа
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 02 окт 2011, 16:58
- Репутация: 1
Re: Отображение большого количества объектов на карте
Alex_mk, Т.к отрисовка векторного слоя происходит в браузере то при таком количестве объектов векторный способ затруднителен, лучше отображать сформированный на сервере растр, не обязательно тайлы, обычный WMS для ваших нужд вполне сгодиться, у вас же не публичный сервис с тысячами посещений. Можно использовать Mapserver, он пошустрее или GeoServer, у него попроще интерфейс.
При этом данные лучше хранить в пространственной базе данных(например Postgres+Postgis+shp2pgsql), используя индексирование, упрощение геометрии, выборки только в текущем охвате и прочие полезности.
При этом данные лучше хранить в пространственной базе данных(например Postgres+Postgis+shp2pgsql), используя индексирование, упрощение геометрии, выборки только в текущем охвате и прочие полезности.
- SergeyRyzhkov
- Гуру
- Сообщения: 909
- Зарегистрирован: 02 июл 2014, 19:13
- Репутация: 203
- Ваше звание: GP-экотеррористы
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Отображение большого количества объектов на карте
VolandF, Вы все правильно говорите, но если требования отображать именно вектор (по той или иной причине), то можно последовать советам выше (моим). У меня в текущем проекте 1.347.000 (!!!) узлов водоканала в базе "отдыхают" рендерим посредством vector tiles и счастье всем. И на клиенте нормальный вектор (для последующей работы) и тянется только то что нужно из базы.
Если уж совсем тяжко, то можно попробовать utfGrid, иначе только растр (
Если уж совсем тяжко, то можно попробовать utfGrid, иначе только растр (
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: Отображение большого количества объектов на карте
Сервер предполагал использовать для порционной отдачи данных клиенту, но не знаю как и на чем можно это реализовать. Может есть примеры с очень большим количеством объектов на карте? Я пока таких не нашел. Если отображать сформированный растр, то пропадет интерактивность (нельзя будет кликнуть на точку и получить информацию по ней, например), чего бы не хотелось. Какой инструментарий серверной и клиентской части оптимально подойдет для выполнения требуемых задач?SergeyRyzhkov писал(а): А причем тут серверная часть?
Если я Вас правильно понял, то у Вас большое количество векторных данных, которые отдаются клиенту для рендеринга. Задача сервера всего лишь отдать порцию данных по запросу.
То есть тормоза - это клиент.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: Отображение большого количества объектов на карте
можно это посмотреть где-то?SergeyRyzhkov писал(а):VolandF, У меня в текущем проекте 1.347.000 (!!!) узлов водоканала в базе "отдыхают" рендерим посредством vector tiles и счастье всем.
- SergeyRyzhkov
- Гуру
- Сообщения: 909
- Зарегистрирован: 02 июл 2014, 19:13
- Репутация: 203
- Ваше звание: GP-экотеррористы
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Отображение большого количества объектов на карте
Если про систему - нет. Она специально для Заказчика делается.
Про спецификацию и ее реализацию погуглите. Основная тема, что вы тянете с сервера также как и с растровыми тайлами, только то что нужно на текущий вид карты и возможно часть кэшируете.
Причем реализовать Вы можете как душе угодно, сам смысл важен
Дам пару ссылок
https://www.mapbox.com/developers/vector-tiles - общее
http://wiki.openstreetmap.org/wiki/Vector_tiles - общее
https://github.com/SpatialServer/Leafle ... VectorTile - плагин
https://github.com/mapbox/geojson-vt - еще
https://nelsonslog.wordpress.com/2013/0 ... tor-tiles/ - тут обратите внимание на релизацию отрисовки на d3 (TileLayer.d3_geoJSON.js). Но в новой версии leaflet есть подвижки с Canvas
Про спецификацию и ее реализацию погуглите. Основная тема, что вы тянете с сервера также как и с растровыми тайлами, только то что нужно на текущий вид карты и возможно часть кэшируете.
Причем реализовать Вы можете как душе угодно, сам смысл важен
Дам пару ссылок
https://www.mapbox.com/developers/vector-tiles - общее
http://wiki.openstreetmap.org/wiki/Vector_tiles - общее
https://github.com/SpatialServer/Leafle ... VectorTile - плагин
https://github.com/mapbox/geojson-vt - еще
https://nelsonslog.wordpress.com/2013/0 ... tor-tiles/ - тут обратите внимание на релизацию отрисовки на d3 (TileLayer.d3_geoJSON.js). Но в новой версии leaflet есть подвижки с Canvas
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 02 окт 2011, 16:58
- Репутация: 1
Re: Отображение большого количества объектов на карте
Можно, запрос getfeatureinfo реализован в большенстве клиентов, правда это уже грозит погружением в изучение OGC стандартовAlex_mk писал(а):нельзя будет кликнуть на точку и получить информацию по ней, например

-
- Гуру
- Сообщения: 838
- Зарегистрирован: 10 дек 2009, 23:24
- Репутация: 169
- Ваше звание: старик-гисовик
- Откуда: Москва
- Контактная информация:
Re: Отображение большого количества объектов на карте
1. Тянуть на клиента кучу геометрии - моветон.
2. Кластеризацию можно делать на сервере.
3. Векторные тайлы - перекладывание всего функционала с сервера на клиента, разработчикам будет адская развлекуха.
2. Кластеризацию можно делать на сервере.
3. Векторные тайлы - перекладывание всего функционала с сервера на клиента, разработчикам будет адская развлекуха.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 02 окт 2011, 16:58
- Репутация: 1
Re: Отображение большого количества объектов на карте
Alex_mk, я бы посоветовал такую схему:
1) Mapserver 6.4.1 как WMS сервер
2) PostgreSQL 9.3 для хранения пространственных данных, расширение PostGis 2.1 для их анализа,
там же есть полезная штука shp2pgsql для загрузки шейп-файлов,
а так же магические операторы <-> и <#>, с помощью которых можно избежать использования getfeatureinfo.
К тому же при надлежащей оптимизации базы данных вопрос о производительности может и не возникнуть.
3) клиент OpenLayers или Leflet, что больше нравиться + javascript примочки типа Jquery и прочее.
Это вполне хватит чтобы отобразить вашу карту в браузере, получить информацию об объекте по клику, а так же реализовать поиск по атрибутам если понадобится.
1) Mapserver 6.4.1 как WMS сервер
2) PostgreSQL 9.3 для хранения пространственных данных, расширение PostGis 2.1 для их анализа,
там же есть полезная штука shp2pgsql для загрузки шейп-файлов,
а так же магические операторы <-> и <#>, с помощью которых можно избежать использования getfeatureinfo.
К тому же при надлежащей оптимизации базы данных вопрос о производительности может и не возникнуть.
3) клиент OpenLayers или Leflet, что больше нравиться + javascript примочки типа Jquery и прочее.
Это вполне хватит чтобы отобразить вашу карту в браузере, получить информацию об объекте по клику, а так же реализовать поиск по атрибутам если понадобится.
- SergeyRyzhkov
- Гуру
- Сообщения: 909
- Зарегистрирован: 02 июл 2014, 19:13
- Репутация: 203
- Ваше звание: GP-экотеррористы
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Отображение большого количества объектов на карте
Коллеги, вот Вы все правильно говорите, советуете, но у меня есть предложение (на будущие ответы)
В общем вопросы бывают двух типов:
1. есть проблема в общем - как ее решить более оптимально (такие-то критерии)
2. есть конкретная задача - как ее решить более оптимально (такие-то критерии)
Давайте все в кучу не сваливать, а отвечать согласно вопросу.
Давайте думать о тех, кто придет на форум и будет читать тему, пытаясь найти подобное решение.
В данном вопросе есть конкретика (не совсем, но улавливается) - интерактивное отображение большого количества объектов. Если я правильно понял - это вектор. Клиент "тонкий", например leaflet. В локальной сети. Приложение просто посмотреть, без всяких наворотов
Вот зачем городить ГИС-серваки и т.д, кто за ними следить, даже если они бесплатные или покупать GeoMixer. Зачем тайлы, WMS и т.д. Если можно обойтись малой кровью.
Много конечно возникает вопросов для окончательного вердикта..
Alex_mk, если желаете напишите мне на почту, пообщаемся, может найдем приемлемый вариант. А потом Вы огласите здесь свое заключение (чтобы уважать форум)
В общем вопросы бывают двух типов:
1. есть проблема в общем - как ее решить более оптимально (такие-то критерии)
2. есть конкретная задача - как ее решить более оптимально (такие-то критерии)
Давайте все в кучу не сваливать, а отвечать согласно вопросу.
Давайте думать о тех, кто придет на форум и будет читать тему, пытаясь найти подобное решение.
В данном вопросе есть конкретика (не совсем, но улавливается) - интерактивное отображение большого количества объектов. Если я правильно понял - это вектор. Клиент "тонкий", например leaflet. В локальной сети. Приложение просто посмотреть, без всяких наворотов
Вот зачем городить ГИС-серваки и т.д, кто за ними следить, даже если они бесплатные или покупать GeoMixer. Зачем тайлы, WMS и т.д. Если можно обойтись малой кровью.
Много конечно возникает вопросов для окончательного вердикта..
Alex_mk, если желаете напишите мне на почту, пообщаемся, может найдем приемлемый вариант. А потом Вы огласите здесь свое заключение (чтобы уважать форум)
-
- Гуру
- Сообщения: 838
- Зарегистрирован: 10 дек 2009, 23:24
- Репутация: 169
- Ваше звание: старик-гисовик
- Откуда: Москва
- Контактная информация:
Re: Отображение большого количества объектов на карте
SergeyRyzhkov, вы очень активно пытаетесь продать на этом форуме свои услуги.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей