2012-01-25 9 views
16

simplemente me preguntaba si alguien sabía de un simple script que se disponga para hacer lo siguiente:Get latitud/longitud coordenadas de un mapa de Google utilizando un marcador

carga un mapa de Google a la vista, cuando se hace clic se muestra un marcador que guardará los valores lat y long en una variable?

¿Alguien sabe si algo como esto ya existe en PHP?

Gracias de antemano

+0

sí, esto se puede lograr. –

Respuesta

26

Quizás que estás buscando algo similar a esto Latitude-Longitude Finder Tool. El código de ejemplo es fue API v2. A continuación se recortada versión del código a través de Google Maps API v3:

var latlng = new google.maps.LatLng(51.4975941, -0.0803232); 
var map = new google.maps.Map(document.getElementById('map'), { 
    center: latlng, 
    zoom: 11, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: 'Set lat/lon values for this property', 
    draggable: true 
}); 
google.maps.event.addListener(marker, 'dragend', function(a) { 
    console.log(a); 
    // bingo! 
    // a.latLng contains the co-ordinates where the marker was dropped 
}); 

Demo

Explicación: se debe establecer la propiedad draggable del marcador en true. A continuación, puede conectar una función de devolución de llamada al evento dragend de ese marcador; las nuevas coordenadas se pasan a la función y puede asignarlas a una variable de JavaScript o campo de formulario.

+0

¡esto ya casi está allí! solo necesito averiguar las saludos de la devolución de llamada del dragend :) – Zabs

+0

¡Ya viene un jsFiddle! dame un minuto o dos. –

+0

impresionante lo espero con ansias :-) les encanta chicos! – Zabs

5

Echa un vistazo a los mapas de Google API versión 3. Desde el events page:

google.maps.event.addListener(map, 'click', function(event) { 
    // use event.latLng to place a google.maps.Marker 
}); 
6
// add a click event handler to the map object 
    GEvent.addListener(map, "click", function(overlay, latLng) 
    { 
     // display the lat/lng in your form's lat/lng fields 
     document.getElementById("latFld").value = latLng.lat(); 
     document.getElementById("lngFld").value = latLng.lng(); 
    }); 

I piensa que obtendrá la latitud y la longitud, entonces puede colocar marcador.

3

He conseguido lo siguiente hasta ahora - ¿cómo podría modificar esto para mover la posición del marcador al hacer clic en cualquier lugar en el mapa

http://jsfiddle.net/ZW9jP/

He añadido lo siguiente pero no se parece hacer cualquier cosa

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

el siguiente código funciona bien

var latlng = new google.maps.LatLng(51.4975941, -0.0803232); 
var map = new google.maps.Map(document.getElementById('map'), { 
    center: latlng, 
    zoom: 11, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: 'Set lat/lon values for this property', 
    draggable: true 
}); 

google.maps.event.addListener(marker, 'dragend', function (event) { 
    document.getElementById("latbox").value = this.getPosition().lat(); 
    document.getElementById("lngbox").value = this.getPosition().lng(); 
}); 
Cuestiones relacionadas