Клуб API Карт

Не выполнять boundschange при клике по кластеру

Пост в архиве.

 

myMapList.events.add('boundschange', function (event) {
    MyBoundsChange();
});
function MyBoundsChange()
{
  // ajax запрос  -> ConstructAPoint(data_xml);
}
function ConstructAPoint(_arr)
{
myMapList.geoObjects.each(function (geoObject) { myMapList.geoObjects.remove(geoObject); });
var clusterer = new ymaps.Clusterer();
clusterer.options.set({
    disableClickZoom: false,
    synchAdd: false,
    icons: clusterIcons,
    numbers: [10],
    balloonHeight: 100,
    balloonSidebarWidth: 50,
    balloonWidth: 100
});
clusterer.add(BaseGeoObjectsArrayObj);
myMapList.geoObjects.add(clusterer);
}
14 комментариев

Нужно, чтобы клик на кластере не зумил карту?

Зумил. Но заного метки не добавлял. Они же уже есть на карте.

Можно хранить область, для которой уже подгружены метки. Потом при boundschange смотреть, входит ли новая область в ту, для которой уже есть данные. Если да, то не вызывать подгрузку.

А есть ли готовый метод?

 

 

Готовый метод по проверке вхождения границ друг в друга?

да.

 

Возможно ли при выполнении клика по кластеру. выключить boundschange  а после - включить?

Нет, отключать нельзя. Это событие карты используется, в том числе, и самим кластеризатором. Если его отключить, все сломается.

Я так понял готового метода нет.

А если глобальную переменуую использотать что то типа того  

 

клик по кластеру {qw = false;}

в теле boundschange  {if(qw == true)   {....... } else {qw = true} }

Нет, такой вариант не прокатит. Клик на кластере не всегда вызывает увеличение зума. Может быть просто поставить проверку на зум?

if (e.get('newZoom') == e.get('oldZoom')) {....})

Или у вас бывают ситуации, когда при увеличении зума надо грузить данные?

Когда карта приближается не надо. А вот когда карта отдаляется = появляются новые регионы, тогда нужен  MyBoundsChange()

Поменяйте просто условие тогда

if (e.get('newZoom')

Всё таки придется искать область в обласи, 

При открытии кластера,  балуна не только зумается но и центр карты смещается и вызывается boundschange 

Сделал как посоветовали, Спасибо. Работает.

хорошо :-)