2016-09-14 167 views
-1

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

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); 
+0

你如何保存参考,对老标记? – scaisEdge

+0

这个问题太含糊。你想如何删除它们?按钮点击?链接?双击?也许尝试谷歌搜索:https://developers.google.com/maps/documentation/javascript/examples/marker-remove – Twisty

回答

0

,可以储存你在适当的VAR例如,创建标记:

var my_old_marker 

那么当你创建一个新的标志firts你应该设置隐藏使用的setMap此标记(空)

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 = []; 
    } 
+0

感谢您的答复...对不起,我可能需要改变我的问题的清晰度...此代码每次用户点击地图时都放置标记。有没有办法只在每次点击时放置一个标记?我怎样才能在标记刚移动的地方进行? –

+0

我已经使用数组更新了答案.. – scaisEdge