2017-07-06 41 views
-1

我希望用戶在頁面上的Google地圖上放置標記。如果用戶再次點擊,第一個標記應該消失,並被新的替換。我怎麼會做這個,從這個代碼開始,如由谷歌提供:只允許Google地圖上的單個標記

function myMap() { 
     var mapCanvas = document.getElementById("map"); 
     var mapOptions = { 
     center: new google.maps.LatLng(51.7, 5), zoom: 6 
     }; 
     var map = new google.maps.Map(mapCanvas, mapOptions); 

     google.maps.event.addListener(map, 'click', function(event) { 
      marker = new google.maps.Marker({ 
      position: event.latLng, 
      map: map 
      }); 
     }); 

我第一次嘗試是在功能的addListener的開始添加marker.remove();,這並沒有爲我工作。

在此先感謝您的幫助!

回答

0

我自己找到了答案。用下面的更換的addListener偉大的工作:

GoogleMaps v3 API Create only 1 marker on click

var marker; 

function placeMarker(location) { 
if (marker) { 
    marker.setPosition(location); 
} else { 
    marker = new google.maps.Marker({ 
    position: location, 
    map: map 
    }); 
} 
} 

google.maps.event.addListener(map, 'click', function(event) { 
    placeMarker(event.latLng); 
}); 
0

下面的代碼可以幫助你在放置標記用戶點擊時。如果用戶再次點擊,則先前的標記被移除並且新的位置被標記。我的答案旨在在你做的第一次嘗試中糾正你的錯誤。嘗試這個。

var flag=0,marker; 
    map.addListener('click', function(e) { 
    if(flag) 
    marker.setMap(null); 
    else 
    flag=1; 
    marker = new google.maps.Marker({ 
    position: e.latLng, 
    map: map}); 
    });