Добавить маркер на карте Google, нажмите на


Я на удивление изо всех сил пытаюсь найти очень простой пример того, как добавить маркер(ы) на карту Google, когда пользователь щелкает левой кнопкой мыши на карте.

Я огляделся за последние пару часов и проконсультировался с документацией Google Maps API, и был бы признателен за помощь!

5 70

5 ответов:

после долгих исследований мне удалось найти решение.

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

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

в 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);
}

это фактически документированная функция, и ее можно найти здесь

// 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);
  }

В настоящее время метод для добавления слушателя на карту будет

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

, а не

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

ссылка

@Chaibi Alaa, вы можете установить маркер на первый клик, а затем просто изменить положение на последующие клики.

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); } }