Перейти к навигации · Перейти к содержимому

Кластеризация меток на Яндекс.картах

В связи с одной задачей (а именно, с переделкой гео-сервиса для Юнистрима) встала задача вывода кучи меток (около 1000) на картах Яндекса. Раньше мы использовали гугловские карты, но у Яндекса есть ряд преимуществ. В частности, карты Гугла не всегда обеспечивают хорошее качество отображения карт городов России и СНГ. При этом они имеют довольно богатую коллекцию всяких примочек и библиотек, которые облегчают жизнь разработчика. Одной из таких библиотек является MarkerClusterer и его обновленная версия MarkerClustererPlus.

Вывести без кластеризации 1000 пунктов довольно проблематично (особенно в IE). Конечно, и Яндекс и Гугл предлагают свои решения данной проблемы (у Гугла это — Fusion tables + сторонние плагины кластеризации), а у Яндекса — диспетчер объектов и активные области. Но дело в том, что некоторые из этих решений слишком сложны в реализации и поддержке (активные области), а другие полезны только в определенном контексте (диспетчер объектов). А для задач среднего уровня лучше кластеризации меток на клиенте пока трудно что-то придумать.

Родного или хотя бы полуофициального кластеризатора у Яндекса нет, но есть несколько сторонних вариантов. Впрочем, ни один из них меня не устроил, так как я тупо не смог заставить их работать. В общем, я решил написать свой кластеризатор — на основе MarkerClustererPlus, но проще и быстрее. И только под Яндекс, так как гугловский уже есть и неплохо справляется. Одним из преимуществ ориентации на Яндекс стало наличие того самого диспетчера объектов — это позволило взвалить на него слежение за маркерами в пределах карты (все маркеры за картой он автоматически скрывает).

Думаю, проблема вполне насущная, а потому можете пользоваться в своих проектах:

Yandex.Clusterer на bitbucket

Пример/сравнение работы — Опера легко справляется с 5000 маркеров.

Комментарии

Привет.
Я делал кластеризатор для Временно.нет. Сейчас он хостится тут. В чем была проблема с его использованием?

Я делал кластеризатор для Временно.нет. Сейчас он хостится тут. В чем была проблема с его использованием?

Проблема была в том, что он у меня вообще не заработал — выдавал какие-то ошибки (я пробовал вариант с той ссылки, которую привёл выше, а не с гитхаба). Я попытался разобраться, но понял, что это займет больше времени. К тому же мой вариант основывается на более новой версии с использованием setTimeout для размещения меток.