0

我在谷歌地图 api v3 上有几个标记,我需要定期重新定位标记。我给了我的标记特定的名称,比如markerA、markerB、...markerO。

我试图运行这个函数来访问正确的标记来重新定位:

function moveMarker(marker,lat,lng) {
  var newLatLng = new google.maps.LatLng(lat,lng);
  marker.setPosition(newLatLng);
}

标记是在加载过程中与地图一起创建的。

  markerA = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: rodIcon, title: 'Car A'});
  markerB = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: rodIcon, title: 'Car B'});
  markerC = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: blaIcon, title: 'Car C'});

但是,似乎我的函数失败了,并且无法识别函数的“标记”输入中给出的标记“名称”。

函数的输入类似于:

moveMarker(markerA,60,10)

但是标记根本不动......

我是否遗漏了一些非常基本的东西,或者我的想法是按名称重新定位每个标记而不是要走的路?

我的意思是,我可以硬编码

markerA.setPosition markerB.setPosition 等...但这似乎是矫枉过正?

4

1 回答 1

0

只是使用.setPosition()方法。见http://jsfiddle.net/Ln2BM/1/

google.maps.event.addListener(marker, 'click', function() {
    var pos = this.getPosition();
    this.setPosition(new google.maps.LatLng(pos.lat(), pos.lng() + 1)); 
});

如果它不起作用,那么你一定犯了另一个错误。您的句子“我的函数失败,并且无法识别函数的“标记”输入中给出的标记“名称”听起来很可疑。您的函数调用可能有问题。

于 2013-12-29T03:50:56.697 回答