谷歌地图在放置新标记之前清除所有标记



我试图在谷歌地图上放置一个标记,点击与填充输入框的lat和lng。我需要代码来清除所有现有的标记,然后再放置新的标记和更新lat和lng。一切工作,除了当我添加代码,试图清除所有的标记。

下面的代码工作得很好,但是在放置新标记之前不会清除旧标记。

谢谢。

不清除现有标记的工作代码…

<div id="map"></div>
<script>
var map;

  function initMap() {
    var latlng = new google.maps.LatLng(-29, 25);
    var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 6,
    center: latlng,
    });
            google.maps.event.addListener(map, 'click', function(event){
            var marker_position = event.latLng;   
            marker = new google.maps.Marker({
            map: map,
            draggable: false
        }); 
   marker.setPosition(marker_position);   
   document.getElementById("latFld").value = event.latLng.lat();
   document.getElementById("lngFld").value = event.latLng.lng();
})                      
  }  
    </script>

在添加新标记之前清除标记的代码不工作…

<div id="map"></div>
<script>
var map;
    var markersArray = [];
  function initMap() {
    var latlng = new google.maps.LatLng(-29, 25);
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 6,
      center: latlng,
    });
            markersArray.push(marker);
    google.maps.event.addListener(marker,"click",function(event){});
            google.maps.event.addListener(map, 'click', function(event){
            var marker_position = event.latLng;   
    marker = new google.maps.Marker({
            map: map,
            draggable: false
        });
   clearOverlays();
   marker.setPosition(marker_position);   
   document.getElementById("latFld").value = event.latLng.lat();
   document.getElementById("lngFld").value = event.latLng.lng();
})   
  }
  function clearOverlays() {
for (var i = 0; i < markersArray.length; i++ ) {
markersArray[i].setMap(null);
    }
  } 

谢谢。

看来你把代码放错地方了。试着

<div id="map"></div>
<script>
var map;
var markersArray = [];
function initMap() {
    var latlng = new google.maps.LatLng(-29, 25);
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 6,
      center: latlng,
    });
   clearOverlays();
    marker = new google.maps.Marker({
            map: map,
            draggable: false
    });
    google.maps.event.addListener(marker,"click",function(event){});
    google.maps.event.addListener(map, 'click', function(event){
    var marker_position = event.latLng;   
        marker.setPosition(marker_position);   
        markersArray.push(marker);
       document.getElementById("latFld").value = event.latLng.lat();
       document.getElementById("lngFld").value = event.latLng.lng();
    })   
} 
function clearOverlays() {
for (var i = 0; i < markersArray.length; i++ ) {
      markersArray[i].setMap(null);
    }
    markersArray = [];
  } 
</script>

最新更新