API 3 de Google Maps: obtener coordenadas con un clic derecho

Tengo 2 cuadros de texto para lat y lon para cuando un usuario ingresa un nuevo registro en la base de datos.

Tengo una vista previa en vivo de Google Maps que funciona muy bien, ahora lo que quiero hacer es agregar un evento de clic derecho en el mapa que llene los cuadros de texto lat / lon con la coord seleccionada.

¿Esto es posible?

Sé cómo agregar el detector de eventos y revisé los documentos de la API, pero no vi nada que hiciera esto. Sé que puedes hacerlo en el mapa de Google en su sitio web.

preguntado Oct 26 '11, 13:10

Creo que encontré algo, el fromDivPixelToLatLng se ve bien. Experimentaré y volveré a publicar la solución si funciona.

2 Respuestas

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

Respondido 26 Oct 11, 19:10

Lol, pasé casi la mitad del día escribiendo código, y simplemente lo revisé, lo borré porque esto es exactamente. ¡¡¡Gracias!!! - chicodefl

¿Cómo se puede saber en qué marcador se hizo clic? almacenándolos en una matriz? - andreaci

El mismo código, pero cambiar "clic derecho" por "clic" hace que funcione para el clic izquierdo. También puedes ver todos los eventos en vivo aquí: developers.google.com/maps/documentation/javascript/events - seoman

Puedes crear un Ventana de información objetodocumentación de clase aquí) y adjuntarle un rightclick controlador de eventos que lo completará con la latitud y longitud de la ubicación en la que se hizo clic en el mapa.

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>

Respondido el 30 de enero de 17 a las 11:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.