Google Maps, кластеризация маркеров

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
selfchief
Интересующийся
Сообщения: 23
Зарегистрирован: 17 янв 2012, 13:38
Репутация: 0
Откуда: Rostov-on-Don
Контактная информация:

Google Maps, кластеризация маркеров

Сообщение selfchief »

Всем доброго дня!
В общем стоит задача отрисовать 100500 маркеров на карте Google Map, вроде бы все просто, но при отрисовки такого количества маркеров, браузер скорее всего загнется или минимум начнет жутко тормозить, даже если использовать клиентскую кластеризацию, объем данных большой и передача между клиентом и сервером будет создавать большие нагрузки, которые нужно избежать.
И в голову приходит лишь одно решение использовать серверную кластеризацию.
И так в базе MySQL хранятся точки с latLng координатами.
От карты мы можем получать координаты видимого участка (x1,x2,y1,y2), зум и еще некоторые данным предоставляемые через api
Решение номер #1) На сервере получать маркеры для видимой области, группировать их по расстоянию друг от друга, когда данная задача была мною и моим коллегой решена. Вроде бы все хорошо, работает как нужно. Но решение не идеально. Так как на "нулевом" зуме все равно будет "некрасиво" и маркеры будут накладываться друг на друга в местах особого скопления.

Решение номер #2) Как мы все знаем карта состоит из плиток (тайлы, tiles). Хочется как то использоваться их на сервере, для клиента данная задача решена, для сервера решения найти я не смог (возможно плохо искал). Так же я нашел некое решение основанное на quadtree, но пока не могу понять как его применить к моей задачи. Есть следующие вопросы:
1) Как нам определить quadtree ноду зная гео-координаты точки (google.maps.latLng)? По какому алгоритму?
2) Как нам узнать какие сейчас quadtree ноды в поле видимости карты, нам доступны только гео-координаты (на сколько я понимаю)

Возможно я зашел в дебри, которые можно обойти более легким решением, так что другие алгоритмы приветствуются! :)

PS спасибо за внимание, надеюсь на помощь сообщества!
Изображение — Дорогу осилит идущий — Изображение
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Google Maps, кластеризация маркеров

Сообщение Максим Дубинин »

не уверен, поможет ли, но вот ссылка про кластеризацию точечных объектов на сервере с помощью Mapserver
http://mapserver.org/mapfile/cluster.html
пристегивайтесь, турбулентность прямо по курсу
Ответить

Вернуться в «Веб-картография»

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

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