Google地图在标记之间平移

时间:2013-11-30 23:40:01

标签: google-maps google-maps-api-3 google-maps-markers pan

我在地图上有多个标记,我希望能够在其间平移。我们的想法是,如果你点击标记1它将平移到标记1居中,然后如果你点击标记2它将从标记1平移到标记2.我已经让平底锅工作正常,但它赢了' t从一个标记平移到另一个标记,而无需用户先移动地图。

我正在使用的当前代码是:

google.maps.event.addListener(marker, 'click', function() {
    map.panTo(marker.getPosition());
});

我想在连续使用多个标记事件监听器时可能会有一些我不知道的事情(也许?我不确定)。

这是我现在遇到的功能性示例:
http://kolosk.us/pan/

希望这很清楚,如果你能提供帮助,请告诉我。谢谢!

1 个答案:

答案 0 :(得分: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