0

我有一个运行自定义 KML (geoxml3) 的谷歌地图 (API 3),其中包含标题和描述的多边形。

一切正常,但是我需要更改多边形单击,以显示信息窗口以悬停工作。创建一个运行单击功能的鼠标悬停侦听器很容易,但是我需要单击来运行另一个功能,因此使用此方法会覆盖单击功能。

如何找到/复制为多边形单击功能运行的代码并将其应用到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或点击工作

4

1 回答 1

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);
});

然后只需将您的点击功能更改为其他内容。记得还要设置你的鼠标移出功能来关闭信息窗口

于 2014-07-18T14:21:00.220 回答