我正在为这样的多个点创建标记:
for (i = 0; i < locations.length; i++) {
console.log("Adding marker...");
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
draggable:true,
icon: locations[i][3]
});
google.maps.event.addListener(marker, 'dragend', function(){
console.log(marker.getPosition());
// This doesn't work :(
});
}
然后我想(在getPosition
下)访问每个标记移动时的位置(lat&amp; long)。我怎么做到这一点?地图上很可能总是有2个标记,因此我需要访问标记0
和标记1
并在移动时记录每个标记。
更新1:
我尝试将id: locations[i][0]
添加到标记,然后使用:console.log(marker.id);
访问它。但是,即使移动了第一个标记,它也始终返回第二个标记的ID /名称。
答案 0 :(得分:3)
在点击侦听器中使用this
来引用点击的标记内容。
google.maps.event.addListener(marker, 'dragend', function(){
console.log(this.getPosition());
});
答案 1 :(得分:0)
您可以在创建标记时将标记存储到数组中
var arr_marker=[];
for (i = 0; i < locations.length; i++) {
console.log("Adding marker...");
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
draggable:true,
icon: locations[i][3]
});
google.maps.event.addListener(marker, 'dragend', function(){
console.log(marker.getPosition());
// This doesn't work :(
});
arr_marker[] = marker;
}
&#13;