我有一个运行自定义KML(geoxml3)的Google地图(API 3),其中的多边形包含标题和说明。
一切正常,但是我需要更改多边形点击,这样可以显示信息窗口在悬停时工作。创建一个运行click函数的鼠标悬停监听器很容易,但我需要单击才能运行另一个函数,因此使用此方法将覆盖click函数。
如何找到/复制为多边形点击功能运行的代码并将其应用于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);
});
我尝试更改“点击”按钮。活动到&#39; mouseover
&#39;但这不会导致mouseover
或点击工作
答案 0 :(得分: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功能以关闭infowindow