【问题标题】:Google Maps Pan between markers谷歌地图在标记之间平移
【发布时间】:2013-12-16 21:39:20
【问题描述】:
我希望能够在地图上平移多个标记。这个想法是,如果您单击标记 1,它将平移到标记 1 居中,然后如果您单击标记 2,它将从标记 1 平移到标记 2。我的平移最初可以正常工作,但它不会t 从一个标记平移到另一个标记,而无需用户先移动地图。
我当前使用的代码是:
google.maps.event.addListener(marker, 'click', function() {
map.panTo(marker.getPosition());
});
我想在连续使用多个标记事件侦听器时可能有一些我不知道的事情(也许?我不确定)。
这是我现在遇到的功能示例:
http://kolosk.us/pan/
希望这很清楚,如果您能提供帮助,请告诉我。谢谢!
【问题讨论】:
标签:
google-maps
google-maps-api-3
google-maps-markers
pan
【解决方案1】:
您的代码中只有一个标记变量,位于循环创建的最后一个标记处。通常的解决方案是使用函数闭包,将标记变量的唯一副本与每个事件侦听器相关联。
for (var i = 0; i < locations.length; i++) {
var beach = locations[i];
var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
//icon: image,
//shape: shape,
title: beach[0],
zIndex: beach[3]
});
google.maps.event.addListener(marker, 'click', (function(marker) {
return function() {
map.panTo(marker.getPosition());
}
})(marker));
}
working example