Клуб API Карт

Разные объекты на карте в зависимости от масштаба API 2

igon.ru
29 мая 2012, 12:53

2 часа читал форум, нашел много интересного, а решение моего вопроса - нет.

Я начал изучать API Яндекс.Карт с версии 2, поэтому не бейте - примеров мало...

 

Задача: при масштабе <12 показывать полигоны - реализовано http://sundayout.igon.ru/mmap2.html

при увеличении карты 12 и крупнее показывать кластеры - реализовано http://sundayout.igon.ru/

Как теперь это "совместить"? Чтобы в зависимости от масштаба карты показывалось или одно, или другое?

 

Дайте хотя бы направление, куда рыть! А за примеры буду очень благодарен!

Заранее спасибо!

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

Это у вас не кластеры, а просто плейсмарки с картинками как кластеры. Кластеры вот так создаются:

clusterer = new ymaps.Clusterer({clusterDisableClickZoom: false, gridSize: 15});
clusterer.add(myGeoObjects);
map.geoObjects.add(clusterer);

//где map это карта,  myGeoObjects это массив содержащий плейсмарки

 

Изменение масштаба можно отследить с помощью обработчика событий на карте  boundschange, пример:

map.events.add('boundschange', function(e) {

//e.originalEvent.oldZoom - старый зум уровень

//e.originalEvent.newZoom - новый зум уровень 

});

 

На первом примере у меня действительно картинки. Но там основной элемент - полигоны.

На втором - основной элемент как раз кластеры.

 

Что мне делать при изменении размеров карты? Удалять/создавать элементы? Или заранее их разместить на слоях и показывать/скрывать слои? В последнем случае - какая технология оптимальна?

Гуру - подскажите, пожалуйста - хочется рыть в нужном направлении, иначе проект полгода делать буду... =(((

Насколько я вижу код, убирать и добавлять регионы у вас получилось, так же поступите с кластерами удалять все геообъекты из кластера removeAll().

Метода спрятать геообъекты я тоже не нашел только remove. 

Кажется, что оптимальным будет создать 2 коллекции геообъектов: с полигонами и с кластерами.

Можно добавлять/удалять из в зависимости от масштаба, а можно выставлять им опцию visible: true/false.

А зачем вам кластеры? У вас всего пара сотен объектов. Сделайте мелкие маркеры  и будет вам счастье.
Кластеры - это допустимое зло при большом количестве объектов. Каждый кластер - это клик пользователя. Каждй клик это  + 25 % к отказам.
Вам оно надо? Вам надо красиво или функционально?