Клуб API Карт

Несколько тысяч меток Placemark

faunusanalytics
27 октября 2011, 19:30

Стоит задача - разместить на карте множество меток (Placemark). Для каждой метки должно быть задано свое содержимое всплывающего балуна (Balloon), содержащее в себе в том числе и HTML разметку с рисунками и ссылками.

 

Внешний вид меток должет быть нестандартным, а разработанным нашим дизайнером. Часть меток просто красивые круги, а часть имеет внешний вид более крупный нежели остальные и содержат в себе контент - порядковый номер. При этом порядковый номер определяется на основании порядкового номера новости (метки соответствуют, как вариант, новостям) в колонке слева. То есть приходится при смене сортировки новостей слева или при наложении на них фильтра перебирать все блоки DIV с новостями при помощи jQuery.each и назначать новые номера меток. И перебирать остальные метки, не попавшие в отображаемые новости и назначать им стиль - мелкий круг.

 

Проблема в том, что множество меток (а соответственно и балунов и блоков Div с новостями) - 2000-3000, возможно - больше. Вряд ли более 4000. Естественно все это хозяйство тормозит безбожно, и загрузка самой карты (пробовал через JavaScript создавать все объекты и при помощи YmapsML из загружать). 

 

Может ли кто-нибудь подсказать - насколько возможно реализовать подобный функционал?

 

P.S.: Также нужна фича - для меток (новостей) назначить разные Zoom уровни, чтобы при мелком масштабе отображались самые горячие новости (согласно выбранному

фильтру и типу сортировки)  а при более крупных масштабах - появлялись новые. Задача тоже реализуемая, но не на таком количестве...

2 комментария
Подписаться на комментарии к посту

Ваш выход hotspots. На разных маштабах можно реализовать, разные метки, но не динамически, то есть создать заранее спомощью скрипта от twirl все слои.

Первично посмотрите на ObjectManager. Он немного поможет не показывать не видимые маркеры.

Он же умеет управлять показом маркеров на различных зумах.

Во вторых лучше забудьте про yml. Вам лучше подгружать данные в json или даже csv, и на основе этих данных строить маркеры и заполнять панели.

Так же не стоит забывать что средний компьютер не в силах отобразить более ~400 меток за раз - начинает тупить. Для не совсем новых компов и не совсем современных браузеров число снижается в разы.

Вам тут поможет либо какой либо кластеризатор, либо хотспоты.