Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Google Maps V3在每次单击后删除所有标记_Jquery_Google Maps_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

Jquery Google Maps V3在每次单击后删除所有标记

Jquery 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

单击my
.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);
   }
}