在自动标记居中后启用Google地图集成中的平移

时间:2012-11-11 14:14:08

标签: javascript google-maps

我已经设置了谷歌地图与我自己的自定义地图集成,以及后端在页面加载时动态放置的标记。

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

地图居中处理如下:

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

我还提供了live version可用的行为

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

  

问题是我的代码将地图集中在标记上,如果你   尝试将地图平移到将地图重新​​定位到的地方   重复居中标记(您可以放大/缩小但不允许   盘)。

当然,好吧。你正在听idle事件,这就是你平移地图后会发生的事情。

idle

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