2017-07-06 9 views
-1

ページ上のGoogleマップにマーカーを配置したい。ユーザーが再びクリックすると、最初のマーカーは消え、新しいマーカーで置き換えられます。私はこれをどのように行うだろう、このコードから始めて、Googleが提供される:Googleマップで1つのマーカーのみを許可する

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}); 
    }); 
関連する問題