2009-10-16 14 views
12

Siempre termino necesitando la ubicación del usuario en la mayoría de los proyectos web en los que trabajo. He usado Maxmind's GeoIp, pero implica la importación de su conjunto de datos y necesita una actualización constante. También hay otros servicios gratuitos y de pago, pero solo quería algo simple que pudiera agregar a cualquier sitio en cuestión de segundos.Cuál es la forma más sencilla de obtener la latitud y la longitud de un usuario desde una dirección IP

Esto es una especie de cebo porque tengo una solución simple, que se detalla a continuación, pero quería ver si alguien más utiliza esta técnica y si hay mejores soluciones o si hay algunas dificultades imprevistas.

+3

Guau, eso es ... un poco espeluznante. –

+0

¿Hay alguna manera de capturar estos datos en el lado del servidor en lugar del lado del cliente? –

+0

No he visto ningún dato de Google sobre la precisión, pero creo que hay muchos factores en la cantidad de información que obtienes. En general, la información de la dirección IP de ubicación no es confiable para una precisión de nivel realmente bajo (cualquier cosa más detallada que la ciudad), pero generalmente eso es todo lo que me importa. –

Respuesta

10

La implementación que uso actualmente la he visto en algunas otras preguntas, pero no la he visto como la respuesta seleccionada.

he detallado esto en mi blog thenullreference.com, pero aquí está en una palabra:


En esencia todo lo que necesita hacer es cargar la escritura API cargador de Google:

<script type="text/javascript" src="http(s)://www.google.com/jsapi"></script> 

Luego tiene acceso a varias propiedades que le brindan información de ubicación detallada.

El objeto que desea mirar es google.loader.ClientLocation

  • ClientLocation.latitude
  • ClientLocation.longitude
  • ClientLocation.address.city
  • ClientLocation.address.country
  • ClientLocation.address.country_code - Código de país ISO 3166-1
  • ClientLocation.address.region - región específica del país en Estados Unidos este es el estado

* Tenga en cuenta algunos de estos pueden ser nulos

Para obtener más información acerca de la API echa un vistazo a here

¿Hay alguien más use ¿esta? ¿Alguien tiene algo que usan que es tan simple y mejor? ¿Hay problemas con este enfoque?

No estoy al tanto de la cobertura/precisión de esta solución, pero creo que Google la mantiene actualizada y probablemente sea bastante buena.

+0

También hay: http://code.google.com/p/geo-location-javascript/ –

+0

Solo he seleccionado este sobre wipmania porque supongo que Google es más estable/confiable para que mis aplicaciones de prueba dependan de él. Parece que ambos enfoques son generalmente lo mismo. –

+0

cuando obtiene longitud y latitud, conoce automáticamente el país –

8

He utilizado el servicio wipmania JSONP libre, no estoy realmente seguro de su exactitud, pero es muy fácil de usar:

// an example using jQuery 
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { 
    alert('Latitude: ' + data.latitude + 
     '\nLongitude: ' + data.longitude + 
     '\nCountry: ' + data.address.country); 
}); 

Comprobar el fragmento de funcionamiento here.

2

Uso MaxMind GeoIP Ciudad/ISP/Organización (Servicio web), esto cuesta $ 20 por 50,000 consultas y siempre se actualiza (vea http://www.maxmind.com/app/web_services#city). Me gusta el hecho de que no tengo que preocuparme por las actualizaciones de la base de datos, ya que todo se hace en el servidor.

Estoy usando PHP para enviar la dirección IP del cliente y a cambio obtengo la latitud, longitud y otros útiles como el código de región, ciudad, código metropolitano, código de área, país, ISP y nombre de la organización si conocido.

Cuestiones relacionadas