Обнаружить щелчок по региону KML в Картах Google - PullRequest
1 голос
/ 17 декабря 2010

Я показываю наложение KML на карте:

var k1 = new GGeoXml (url); map.addOverlay (k1);

Я хочу определить, когда был выбран этот регион. Это не работает:

GEvent.addListener (k1, 'щелчок', функция () {alert ('вы щелкнули k1');});

Есть идеи?

1 Ответ

0 голосов
/ 24 мая 2011

Я предполагаю, что вы используете API Карт V2.

Проверяя документацию, класс GGeoXml не вызывает событие 'click', и интерфейс, который он реализует, GOverlay также не предоставляет этого события. Таким образом, хотя вы теоретически привязаны к этому событию, оно никогда не сработает.

Вы привязываете слушателя к событию, которое не существует - GOverlay не вызывает никаких событий.

При быстром просмотре только GMap2 вызывает события мыши (возможно, и другие классы тоже). Вы пытались добавить к этому прослушиватель, а затем проверять исходный объект при возникновении события?

  var k1 = new GGeoXml(url);
  map.addOverlay(k1);
  GEvent.addListener(map, 'click', callback);

  function (overlay, latlng) callback
  {
    if (overlay == k1) alert('you clicked on k1');
  }

(см. Документы EventListener )

API Карт Google не очень гибки; имейте в виду, что оверлеи KML еще менее гибкие. Что вы хотите делать, когда нажимаете на оверлей?

...