从地图中删除标记

时间:2016-09-14 18:36:28

标签: google-maps jquery-ui

我正在使用此代码通过点击来从地图中选择位置。每次我点击地图时,它都会选择一个新位置并在地图上显示一个新标记。我想隐藏/删除/清除地图上的旧标记。如何通过单击按钮从地图中清除标记?

var placedMarkers = 0;
var availableMarkersToPlace = 1;
setTimeout( function(){
    if(placedMarkers >= availableMarkersToPlace)
         return;
    placedMarkers++;
    var map = Appery("google_map").gmap;
    google.maps.event.addListener(map, 'click', function(event) { 
       localStorage.setItem('selectedLat', event.latLng.lat());
localStorage.setItem('selectedLng', event.latLng.lng()); 
        placeMarker(event.latLng,map);  
        alert(event.latLng);



    });

}, 1000);

1 个答案:

答案 0 :(得分:0)

您应该将您创建的标记存储在适当的var中,例如:

var my_old_marker

然后当您创建新标记时,应使用setMap(null)

设置隐藏此标记
my_old_marker.setMap(null);

您应该创建新标记并存储在my_old_marker

my_old_marker = new google.maps.Marker({
      position: location,
      map: map
 });

如果你想制作一组标记并最终隐藏.. 你应该使用一个数组,例如:

var markers = [];

然后点击一个监听器,您可以使用addMarker函数

添加标记
    map.addListener('click', function(event) {
      addMarker(event.latLng);
    });

  // Adds a marker to the map and push to the array.
  function addMarker(location) {
    var marker = new google.maps.Marker({
      position: location,
      map: map
    });
    markers.push(marker);
  }

最后你可以使用一个按钮调用一个函数,在你需要时删除标记

    function deleteMarkers() {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(null);
    }
    markers = [];
  }