2010-01-18 28 views
5

¿Alguien ha podido obtener la geolocalización basada en la dirección IP de una persona para trabajar usando Google Maps API v3 JavaScript?Google Maps API v3 - Geolocalización basada en IP

Me parece que incluso el ejemplo provisto por google no funciona.

http://gmaps-samples-v3.googlecode.com/svn/trunk/commonloader/clientlocation.html

Pregunta:

  1. ¿Funciona este ejemplo para cualquier persona?

  2. ¿Cómo puedo obtener la geolocalización basada en la IP de una persona para trabajar con Google Maps API v3?

Respuesta

5

P1: Funciona a partir de aquí, y probablemente de muchos otros lugares. Sin embargo, tenga en cuenta que la geolocalización desde direcciones IP no es una ciencia muy confiable. Obtendrá la ubicación de su ISP, que puede estar bastante lejos, y además las bases de datos de IP a ubicación no siempre están actualizadas con los últimos cambios, por lo que es posible que no tenga datos para una IP en particular. dirección - que es probablemente lo que está sucediendo en su caso.

MaxMind, que ofrece una base de datos populares-IP a la ubicación publicado algunas estadísticas sobre su base de datos:

P2: La única manera de conseguir la geolocalización desde una IP dirección a través de la API de Google Maps v3 es mediante el mismo método utilizado en el example you provided. Sin embargo, si encuentra que cualquier otra base de datos de geolocalización, como MaxMind GeoLite City, es más precisa para su país, es posible que desee hacer la geolocalización desde las direcciones IP usted mismo, en lugar de delegarla en Google Maps.

+2

funciona desde aquí también. probablemente su ubicación (OP) no se encuentre en las bases de datos. – dusoft

+1

Funciona bien para mí también (nivel de la ciudad). –

0

La API de Google Maps web no parece ofrecer un servicio de geolocalización de dirección IP (el example proporcionado sugiere utilizar el estándar de geolocalización W3C, que generalmente requiere una acción del usuario).

¡Sin embargo! Maps Geolocation API de Google, generalmente utilizado en clientes móviles, puede ser utilizado desde la web y devuelve una latitud & longitud según la dirección IP del cliente solicitante.

Aquí está un ejemplo rápido jQuery que demuestra su uso:

$.ajax({ 
    url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR-API-KEY', 
    data: JSON.stringify({ "considerIp": "true" }), 
    type: 'POST', 
    contentType: 'application/json', 
    success: function(data) { 
     if(data.location) { 
     alert(data.location.lat + ', ' + data.location.lng); 
     } else { 
     alert('not found'); 
     } 
    } 
    }); 

Aquí está la curl equivalente:

curl -H "Content-Type: application/json" -X POST -d '{"considerIp": true}' https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR-API-KEY 

No se olvide de cambiar de una clave de API real en los ejemplos anteriores y que enable the Geolocation API para su proyecto de API de Google.

+0

¿Alguna posibilidad de que pueda proporcionar un ejemplo html? –

+1

@RoccoTheTaco: aquí está [un ejemplo] (http://jsbin.com/fiberadufu/1/edit?html, consola, salida) utilizando el mismo código que el anterior. Tendrá que establecer la variable 'GOOGLE_API_KEY'; de lo contrario, esto no funcionará (vaya a la consola de la API de Google, cree un nuevo proyecto, habilite la API de geolocalización y obtenga una clave API). –

+0

Consulte los [ejemplos] (https://developers.google.com/maps/documentation/javascript/geolocation) en el sitio web de Google Maps. – Jaime

Cuestiones relacionadas