Google Maps API 3: получить координаты по правому клику - PullRequest
56 голосов
/ 26 октября 2011

У меня есть 2 текстовых поля для лат и долг, когда пользователь вводит новую запись в БД.

У меня есть живой предварительный просмотр Карт Google, который отлично работает, теперь я хочу добавить событие щелчка правой кнопкой мыши на карте, которое заполняет текстовые поля широта / долгота с нажатой координатой.

Возможно ли это вообще?

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

Ответы [ 2 ]

154 голосов
/ 26 октября 2011
google.maps.event.addListener(map, "rightclick", function(event) {
    var lat = event.latLng.lat();
    var lng = event.latLng.lng();
    // populate yor box/field with lat, lng
    alert("Lat=" + lat + "; Lng=" + lng);
});
3 голосов
/ 30 января 2017

Вы можете создать объект InfoWindow (документация класса здесь ) и прикрепить к нему обработчик события rightclick, который будет заполнять его широтой и долготой выбранного местоположения накарта.

function initMap() {
  var myOptions = {
      zoom: 6,
      center: new google.maps.LatLng(-33.8688, 151.2093)
    },
    map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),
    marker = new google.maps.Marker({
      map: map,
    }),
    infowindow = new google.maps.InfoWindow;
  map.addListener('rightclick', function(e) {
    map.setCenter(e.latLng);
    marker.setPosition(e.latLng);
    infowindow.setContent("Latitude: " + e.latLng.lat() +
      "<br>" + "Longitude: " + e.latLng.lng());
    infowindow.open(map, marker);
  });
}
html,
body {
  height: 100%;
}
#map-canvas {
  height: 100%;
  width: 100%;
}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAIPPUQ0PSWMjTsgvIWRRcJv3LGfRzGmnA&callback=initMap" async defer></script>
<div id="map-canvas"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...