0

我已经建立了一个谷歌地图集成,其中包含我自己的自定义地图和由后端在页面加载时动态放置的标记。

问题是我的代码将地图集中在标记上,如果您尝试将地图平移到任何位置,它会反复将地图重新​​定位到居中的标记(您可以放大/缩小但不能平移)。

地图居中处理如下:

google.maps.event.addListener(map,'idle',function (map) {
    var coords = genCoords(map,"40.014","80.52");

    clueLocation = new google.maps.Marker({
        map:map,
        position: new google.maps.LatLng(coords.lat(),coords.lng()),
        center: new google.maps.LatLng(coords.lat(),coords.lng()),
        title: 'Ramara du Croissant'
    });
    map.setCenter( new google.maps.LatLng(coords.lat(),coords.lng()) );
}.bind(null,map));

而且我还提供了一个可以体验行为的实时版本

如果它确实有所作为,有问题的代码将始终只显示一个标记,到目前为止我发现的是边界解决方案,当您需要将地图置于一组标记中时,这不是我的方法我要去这里。

4

2 回答 2

1

如果您只希望地图以标记为中心一次,请使用google.maps.event.addListenerOnce,而不是 google.maps.event.addListener

您可能希望为此目的使用空闲事件重新评估,但如果您只想显示一个标记,它应该可以工作。

于 2012-11-11T15:28:16.687 回答
0

问题是我的代码将地图集中在标记上,如果您尝试将地图平移到任何位置,它会反复将地图重新​​定位到居中的标记(您可以放大/缩小但不能平移)。

嗯,当然。您正在收听该idle事件,这就是您平移地图后发生的情况。

闲

idle只要地图在滚动或缩放更改后完成重绘,就会触发该事件。

于 2012-11-11T20:08:22.553 回答