谷歌地图信息窗口提示闪烁

7
当快速移动鼠标从左到右再到左时,标记信息窗口的白底部提示出现在地图的左上角。
在这里可以看到它的效果: 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

6
奇怪。其实你不需要每次都创建一个新的信息窗口。使用全局变量 var infowindow = new google.maps.infowindow(); 创建一个窗口,然后当你想要改变内容时,只需调用 infowindow.setContent('...');,调用 infowindow.open(map, marker); 来显示它。但是闪烁问题仍然存在。我可以看到官方文档中所有示例都有相同的问题... - MrUpsidown
3
@davidkonrad 可能有很好的理由。根据我在例子中看到的,似乎没有必要。但那只是一个提示。顺便说一句,我已经尝试过不指定API版本,结果还是一样的。 - MrUpsidown
3
如果您拖动地图,那个“幽灵”标记也会移动。 - Anto Jurković
2
要在免费API中使用除“实验性”或“发布”的版本之外的其他版本,您需要将其指定为v=3.15(这是当前的“冻结”版本,也是最早可用的版本)。 [版本控制](https://developers.google.com/maps/documentation/javascript/basics#Versioning) - geocodezip
2
在问题跟踪器中提交的错误报告。[https://code.google.com/p/gmaps-api-issues/issues/detail?id=6746] - geocodezip
显示剩余6条评论
1个回答

1

可能是Google地图js api版本3 infowindow故障的重复。

我可以确认在IE和Google Chrome中都会出现此问题。这似乎是与Google Maps API有关的问题,因此您将其列为错误是正确的。为了尝试解决自己脚本中的问题,我已经尝试使用InfoWindow类的setPosition方法将特定的LatLng坐标设置为0,0,然后调用open方法;并且通过setOptions方法调整pixelOffset属性,但是都无济于事。我还考虑过来回更改InfoWindow的可见状态,但这并不容易。

等待修复错误似乎是唯一可行的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接