2010-05-05 11 views

Respuesta

13

Si necesita averiguar la latitud y longitud de una dirección utilizando la API de Google Maps, es necesario utilizar el Google Maps Geocoding Service:

var map = new GMap2(document.getElementById("map_canvas")); 
var geocoder = new GClientGeocoder(); 

var address = "1600 Amphitheatre Parkway, Mountain View"; 
geocoder.getLatLng(address, function(point) { 
     var latitude = point.y; 
     var longitude = point.x; 

     // do something with the lat lng 
    }); 

Si desea obtener la latitud y longitud de una posición hecho clic en el mapa de Google, usted puede hacer esto en el evento click:

GEvent.addListener(map, "click", function(marker,point) { 
     var latitude = point.y; 
     var longitude = point.x; 

     // do something with the lat/lng 
    }); 
+0

¡Gracias! ¿Cómo obtengo GEvent? en mi página html o jsp? ¿Debo incluir cualquier js. Estoy usando http://code.google.com/p/struts2-map-plugin/wiki/MapTag, pero esto no tiene función de etiqueta en el mapa, por lo que busca algo que mostró en el segundo ejemplo aquí. –

+0

@AmolGhotankar Ghotankar saheb, mi ha código chalawun pahila, nahi chalate mazya ithe, sagalyat pahilya respuesta cha código pan chalat nahiye, tumhala kahi mahit aasel tar sanga na ... mala mapa guerra konatyahi punto la clic kelyawar tya punto ch latitud y longitud pahijele. –

0

no estoy seguro de si está solicitando una forma de obtener latitud y longitud mediante código (aunque sí dijo API :)), Si lo está, hay un millón de publicaciones que le mostrarán cómo (incluidas las de arriba), pero si usted es interesado en algún tipo de utilidad que simplemente te dice dónde estás haciendo clic, Google Maps ya viene con él. echa un vistazo a su publicación aquí sobre cómo habilitar esa funcionalidad.

http://varunpant.com/posts/find-longitude-and-latitude-in-google-maps

22

Con versión 3 del API

google.maps.event.addListener(map, 'click', function(event) { 
    alert('Lat: ' + event.latLng.lat() + ' and Longitude is: ' + event.latLng.lng()); 
}); 

Del mismo modo se puede recuperar cuando se arrastra un marcador cayó:

google.maps.event.addListener(marker, 'dragstart', function(event) { 
    alert('Lat: ' + event.latLng.lat() + ' and Longitude is: ' + event.latLng.lng()); 
}); 
+4

Nota: desde que mi edición fue rechazada, faltan paréntesis y un punto y coma que deben agregarse antes de que funcione. Además, sugiera cambiar 'dragstart' por' dragend' para que reciba una alerta DESPUÉS de colocar el marcador (no tan pronto como lo levante). –

0

Para añadir a la respuesta de RedBlueThing puede hacer cosas como:

geocoded_by :address 

def address 
[street, city, state, country].compact.join(', ') 
end 

para ayudar a optimizar la ubicación exacta, de lo contrario si acaba de enviar en la calle la gema geocodificador sólo devuelve la primera instancia de esa calle que encuentre lo que podría estar en cualquier lugar en el mundo

0

¿Qué tal? trabajando bien ...

var map = new google.maps.Map(....); 
var longitude = map.center.lng(); 
var latitude = map.center.lat(); 

o

var longitude = map.getCenter().lng(); 
var latitude = map.getCenter().lat(); 
Cuestiones relacionadas