我已经设置了谷歌地图与我自己的自定义地图集成,以及后端在页面加载时动态放置的标记。
问题是我的代码将地图集中在标记上,如果您尝试将地图平移到任何地方,它会重复地将地图重新定位到居中标记(您可以放大/缩小但不能平移)
地图居中处理如下:
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可用的行为
如果它确实有所作为,那么有问题的代码将始终只显示一个标记,到目前为止我发现的是边界解决方案,当你需要将地图置于一组标记中心而不是接近我要去的地方。
答案 0 :(得分:1)
如果您只希望地图在标记上居中一次,请使用google.maps.event.addListenerOnce,而不是google.maps.event.addListener
您可能希望为此目的使用空闲事件重新评估,但如果您只打算显示单个标记,则它应该可以正常工作。
答案 1 :(得分:0)
当然,好吧。你正在听问题是我的代码将地图集中在标记上,如果你 尝试将地图平移到将地图重新定位到的地方 重复居中标记(您可以放大/缩小但不允许 盘)。
idle
事件,这就是你平移地图后会发生的事情。
在滚动或缩放更改后,只要地图完成重绘,就会触发idle
事件。