2016-09-14 169 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