2012-01-16 45 views
1
var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    icon: image, 
    title: tittle, 
    zIndex: i, 
    draggable: true 
}); 

google.maps.event.addListener(marker, 'drag', function() { 
    $("input[name='request']").val(marker.getPosition()); 
}); 

google.maps.event.addListener(marker, 'dragend', function() { 
    $("input[name='request']").val(marker.getPosition()); 
}); 

事件被添加到一个单一的标记,并需要为许多至少1000或甚至无限。如何我可以做一个gmap v3与多个标记,这些是可拖动的

+0

把你的代码放在一个'for()'循环中,应该是全部。 – zrvan 2012-01-16 20:06:49

回答

1

使用阵列的位置和为每个位置调用addMarker方法。

var locationsArray; 

for(var i = 0 ; i<locationsArray.length; i++){ 
    addMarker(locationsArray[i]); 
} 


function addMarker(myLatLng){ 
var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    icon: image, 
    title: tittle, 
    zIndex: i, 
    draggable: true 
}); 

google.maps.event.addListener(marker, 'drag', function() { 
    $("input[name='request']").val(marker.getPosition()); 
}); 

google.maps.event.addListener(marker, 'dragend', function() { 
    $("input[name='request']").val(marker.getPosition()); 
}); 
} 
+0

我为将来想要的人解决了这个问题,我的代码显然被包含在for中,并从json获取坐标......解决方案是在事件标记dragend“marker”中通过“this”进行更改。 ..问候,像这样: google.maps.event.addListener(marker,'dragend',function(){ $(“input [name ='request']”)。val(this.getPosition() ); }); – Gomosoft 2012-01-17 03:58:36

相关问题