我在谷歌地图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'});
然而,似乎我的功能失败了,并且无法识别函数“marker”输入中给出的标记“name”。
该函数的输入类似于:
moveMarker(markerA,60,10)
但是标记根本没有移动......
我是否遗漏了一些非常基本的东西,或者我的想法是按照名称重新定位每个标记而不是去哪里?
我的意思是,我可以硬编码
markerA.setPosition markerB.setPosition等......但这似乎有点矫枉过正?
答案 0 :(得分: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));
});
如果它不起作用,那你一定犯了不同的错误。很可疑的声音你的句子“我的功能失败,并且无法识别功能”的“marker”输入中给出的标记“name”。你的函数调用可能有问题。