【问题标题】:Google Maps infowindow tip blinking谷歌地图信息窗口提示闪烁
【发布时间】:2014-05-28 12:49:50
【问题描述】:

将鼠标快速移动到左右两个标记上时,地图左上角会出现标记信息窗口的白色底部提示。

在此处查看实际操作http://jsfiddle.net/WGy4g/3/

var map = null;

initialize();

function initialize() {
    var mapOptions = {center: new google.maps.LatLng(-34.397, 150.644),zoom: 8};
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);    

    addMarker(-34.397, 150.644);
    addMarker(-34.377, 150.534);
}

function addMarker(lat,lng) {
    var marker = new google.maps.Marker({position: new google.maps.LatLng(lat,lng), title: "marker"});
    marker.setMap(map);

    google.maps.event.addListener(marker, 'mouseover', function() {
        if (!this.infowindow) {
            this.infowindow = new google.maps.InfoWindow({content: 'abc'});
        }
        this.infowindow.open(map, this);
    });
    google.maps.event.addListener(marker, 'mouseout', function() {
        this.infowindow.close();
    });
}

发布错误报告:https://code.google.com/p/gmaps-api-issues/issues/detail?id=6746&thanks=6746&ts=1401343988

【问题讨论】:

  • 奇怪。您实际上不需要每次都创建一个新的信息窗口。创建一个全局范围 var infowindow = new google.maps.infowindow();。然后,您可以在要更改内容时调用infowindow.setContent('...'); 并调用infowindow.open(map, marker); 来显示它。但是闪烁的问题仍然存在。我可以看到官方文档中的所有示例都发生了同样的情况......
  • @davidkonrad 可能有充分的理由。从我在示例中看到的情况来看,没有必要。但这只是一个提示。仅供参考,我尝试过不指定 API 版本,结果也是一样。
  • 如果你拖动地图,那个“幽灵”标记也会移动。
  • 要在免费 API 中使用“实验”或“发布”版本以外的其他内容,您需要将其指定为 v=3.15(即当前的“冻结”版本,以及最旧的可用版本)。 Versioning

标签: javascript google-maps google-maps-api-3


【解决方案1】:

Google map js api version 3 infowindow glitch 可能重复

我可以确认在 IE 和 Google Chrome 中都会发生这种情况。这似乎是 Google Maps API 的问题,因此您将其列为错误是正确的。为了尝试在我自己的一个脚本中解决这个问题,我试过了;在调用 open 方法之前,使用 InfoWindow 类的 setPosition 方法将特定的 LatLng 坐标设置为 0,0;并通过 setOptions 方法摆弄 pixelOffset 属性,但无济于事。我还考虑过来回更改 InfoWindow 的可见性状态,但是没有简单的方法可以做到这一点。

等待漏洞修复似乎是唯一可行的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-21
    • 2012-02-18
    • 2016-07-10
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多