Jquery Google Maps V3在每次单击后删除所有标记
单击myJquery Google Maps V3在每次单击后删除所有标记,jquery,google-maps,google-maps-api-3,google-maps-markers,Jquery,Google Maps,Google Maps Api 3,Google Maps Markers,单击my.preview按钮时,它会查看文本区域中的每个地址,然后绘制它 每次单击.preview时,我都想删除标记,因为我看到它只是在与之前的标记相同的点周围绘制另一个标记 $('.preview').click(function(){ setAllMap(null); var temp_addresses = document.getElementById("gps").value.split("\n"); for(var i=0;i<temp_addresses.le
.preview
按钮时,它会查看文本区域中的每个地址,然后绘制它
每次单击.preview
时,我都想删除标记,因为我看到它只是在与之前的标记相同的点周围绘制另一个标记
$('.preview').click(function(){
setAllMap(null);
var temp_addresses = document.getElementById("gps").value.split("\n");
for(var i=0;i<temp_addresses.length;i++){
addresses.push(temp_addresses[i]);
geocoder.geocode( { 'address': temp_addresses[i]}, function(response, status) {
geocode_results[i] = new Array();
geocode_results[i]['status'] = status;
var top_location = response[0];
var lat = Math.round(top_location.geometry.location.lat() * 1000000)/1000000;
var lng = Math.round(top_location.geometry.location.lng() * 1000000)/1000000;
geocode_results[i]['lat'] = lat;
geocode_results[i]['lng'] = lng;
geocode_results[i]['l_type'] = top_location.geometry.location_type;
marker = markers[i] = new google.maps.Marker({
icon: mapIcon,
position: new google.maps.LatLng(lat,lng),
map: map
});
});
}
});
您需要创建一个setAllMap函数(它不是API的一部分)。。。如果标记数组在全局范围内,这应该可以工作
function setAllMap(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
}
函数setAllMap(map){
对于(var i=0;i
或者你可以把循环放在调用函数的地方。意味着,您想清除地图上的所有标记…@ManetiVinay,只要标记消失,并将根据var temp_addresses
重新填充,我认为此链接是使用完整的………@ManetiVinay我看到了这一点,它似乎没有删除标记。它输出我最初发布的错误setAllMap
函数在哪里,它看起来像什么?您在哪里调用了marker.setMap(null)代码>?你的问题没有足够的细节。不幸的是,这不起作用,没有错误,但标记仍然保持在原位。请参阅edit您能提供一个JSFIDLE来显示问题吗?如果markers数组是全局的,它应该可以工作,但是我没有测试它(因为您没有提供足够的代码来轻松地进行测试…)
function setAllMap(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
}