クリック時にGoogleマップにマーカーを追加


87

ユーザーが地図を左クリックしたときにマーカーをGoogleマップに追加する方法の非常に簡単な例を見つけるのに、驚くほど苦労しています。

私は過去数時間見回して、Google Maps APIのドキュメントを調べました、そしていくつかの助けをいただければ幸いです!

回答:


169

さらに調査した結果、解決策を見つけることができました。

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

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

7
ユーザーが一度だけ追加できるようにすることはできますか?マーカーを移動しますか?
Chaibi Alaa 2016

plase give sample link
Sopo 2018

43

2017年の解決策は次のとおりです。

map.addListener('click', function(e) {
    placeMarker(e.latLng, map);
});

function placeMarker(position, map) {
    var marker = new google.maps.Marker({
        position: position,
        map: map
    });
    map.panTo(position);
}

20

これは実際には文書化された機能であり、ここで見つけることができます

// This event listener calls addMarker() when the map is clicked.
  google.maps.event.addListener(map, 'click', function(e) {
    placeMarker(e.latLng, map);
  });

  function placeMarker(position, map) {
    var marker = new google.maps.Marker({
      position: position,
      map: map
    });  
    map.panTo(position);
  }

14

@Chaibi Alaa、ユーザーが1回だけ追加し、マーカーを移動できるようにするため。最初のクリックでマーカーを設定し、その後のクリックで位置を変更することができます。

var marker;

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


function placeMarker(location) {

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

6

現在、リスナーをマップに追加する方法は次のようになります。

map.addListener('click', function(e) {
    placeMarker(e.latLng, map);
});

そしてではない

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

参照


0
  1. 最初にマーカーを宣言します。
this.marker = new google.maps.Marker({
   position: new google.maps.LatLng(12.924640523603115,77.61965398949724),
   map: map
});
  1. クリック時にマーカーをプロットするメソッドを呼び出します。
this.placeMarker(coordinates, this.map);
  1. 関数を定義します。
placeMarker(location, map) {
    var marker = new google.maps.Marker({
        position: location,
        map: map
    });
    this.markersArray.push(marker);
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.