我正在使用此代码通过点击来从地图中选择位置。每次我点击地图时,它都会选择一个新位置并在地图上显示一个新标记。我想隐藏/删除/清除地图上的旧标记。如何通过单击按钮从地图中清除标记?
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 :(得分: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);
}
最后你可以使用一个按钮调用一个函数,在你需要时删除标记 p>
function deleteMarkers() {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
markers = [];
}