var markersArray = new Array();
function clearOverlays(){
if(markersArray){
for (i in markersArray) {
markersArray[i].setMap(null);
}
}
}
这几乎是从google maps v3文档中复制出来的......但它不起作用。 :/
这是实现该功能的地方:
function TCGetLatLong(address){
var geo = new google.maps.Geocoder;
var lat;
var lng;
geo.geocode({'address':address},function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
clearOverlays();
addMarker(results[0].geometry.location, true, true, 16, "new", 0, "", "");
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
这是我在addMarker函数中添加标记的位置:
marker = new google.maps.Marker({
position: location,
draggable: draggable,
title: "Your new listing",
map: map
});
markersArray.push(marker);
google.maps.event.addListener(marker, 'dragend', function() {
infowindow.open(map,marker);
document.getElementById('lat').value = marker.position.lat();
document.getElementById('long').value = marker.position.lng();
});
google.maps.event.addListener(marker, 'dragstart', function(){ infowindow.close(); });
infowindow.open(map,marker);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
任何帮助都会非常好......谢谢。
答案 0 :(得分:0)
遇到类似的问题 - 我认为在我的情况下,在地图加载事件完成之前,markers数组没有完全填充。我抛出一个js警报作为我的脚本中读取数组长度的最后一个命令,它返回为0.但是,如果我添加另一个js警报绑定到我在页面加载后单击的命令按钮,我可以读取1050数组中的记录。
答案 1 :(得分:0)
仍然没有得到答案,但设法绕过它烦人的。