Щелчок по многоугольнику с помощью Google Maps API 3 - необходимо изменить на MouseOver (слой Geoxmlv3 & KML)
У меня есть Google Maps (API 3), на котором работает пользовательский KML (geoxml3) с полигонами, содержащими заголовки и описания.
Все работает нормально, однако мне нужно изменить щелчок полигона, который показывает, что информационное окно вместо этого работает при наведении курсора. Достаточно легко создать слушатель при наведении курсора мыши, который запускает функцию щелчка, однако мне нужно щелчок, чтобы запустить другую функцию, чтобы функция щелчка перезаписывалась с использованием этого метода.
Как я могу найти / скопировать код, который выполняется для функции щелчка полигона, и применить его к onmouseover
вместо? Это возможно?
Обновление: я нашел этот раздел в geoxmlv3.js
файл:
google.maps.event.addListener(gObj, 'click', function (e) {
var iW = this.infoWindow;
iW.close();
iW.setOptions(this.infoWindowOptions);
if (e && e.latLng) iW.setPosition(e.latLng);
else if (this.bounds) iW.setPosition(this.bounds.getCenter());
iW.setContent("<div id='geoxml3_infowindow'>" + iW.getContent() + "</div>");
google.maps.event.addListenerOnce(iW, "domready", function () {
var node = document.getElementById('geoxml3_infowindow');
var imgArray = node.getElementsByTagName('img');
for (var i = 0; i < imgArray.length; i++) {
var imgUrlIE = imgArray[i].getAttribute("src");
var imgUrl = cleanURL(doc.baseDir, imgUrlIE);
if (kmzMetaData[imgUrl]) {
imgArray[i].src = kmzMetaData[imgUrl].dataUrl;
} else if (kmzMetaData[imgUrlIE]) {
imgArray[i].src = kmzMetaData[imgUrlIE].dataUrl;
}
}
});
iW.open(this.map, this.bounds ? null : this);
});
Я пытался изменить событие "клик" на "mouseover
но это не вызывает mouseover
или нажмите, чтобы работать
1 ответ
Вот решение (после долгих проб и ошибок!)
google.maps.event.addListener(poly,"mouseover",function(e) {
var iW = this.infoWindow;
iW.close();
iW.setOptions(this.infoWindowOptions);
if (e && e.latLng) iW.setPosition(e.latLng);
else if (this.bounds) iW.setPosition(this.bounds.getCenter());
iW.setContent("<div id='geoxml3_infowindow'>"+iW.getContent()+"</div>");
iW.open(this.map, this.bounds ? null : this);
});
Затем просто измените функцию щелчка на что-то другое. Не забудьте также установить свою функцию mouseout, чтобы закрыть информационное окно тоже