Клуб API Карт

Определить на что click

Ольга Стогова
7 ноября 2012, 12:49

скажите, пожалуйста, как определить на что был клик — на кластер или на одиночную метку

clusterer.events.add('click' , function(e){

 

yyy = e.get('target');

if (yyy.isClustered)

 {

     console.log("Да, так и есть — это кластер");

 }

     else

 {

     console.log("Это всеголишь маленькая одинокая метка");

  }

});

 

 

 

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

Если на кластере после клика открылся балун, то клик не поймается. Зато можно поймать событие balloonopen.

То есть в общем случае так

clusterer.events.add(['click', 'balloonopen'], function (e) {

    var object = e.get('target');

    if (typeof object.getGeoObjects != 'undefined') {

       // по наличию метода getGeoObject определяем, что это кластер

    } else {

       // иначе метка

    }

});

 

Если на кластере после клика открылся балун, то клик не поймается.

а почему?

Кластер сейчас стопит клик при зуме и при открытии балуна, чтобы эти 2 события друг другу не мешали. Это, вообще говоря, не очень здорово, но руки поправить пока не доходят, так как не критично.

Ольга Стогова
7 ноября 2012, 14:27

кстати клик все равно отловится, а потом баллун откроется)) по крайней мере по метке)

Ольга Стогова
7 ноября 2012, 14:26

все ок, баллуна нет — вся «баллунская инфа» выводится у меня в «всплывающий» div над картой, 

и спасибо, все получилось) теперь мне осталось только Алтайский край на регионы разделить)) и всеее ура ура