2011-09-24 12 views
13

¿Por qué la geolocalización de HTML5 le permite compartir su ubicación? ¿Cuál es el propósito principal del uso de la geolocalización, ya que también puedes obtener la ubicación con la dirección IP? ¿Hay alguna diferencia entre estos dos métodos?¿Por qué la geolocalización en HTML5?

Pregunto porque la geolocalización requiere el permiso del usuario y tampoco funciona en todos los navegadores.

+0

no se puede obtener una ubicación _accurate_ utilizando la dirección IP. Lo mejor que se puede hacer es dar la ubicación del ISP que dio la dirección IP. Una vez trabajé para una empresa de EE. UU. Que tenía direcciones IP de Inglaterra ... –

+1

@ John Saunders: para ser justos, se trata de un error en la base de datos de ubicación de IP para mantenerse actualizado, en lugar de estar la dirección IP en la ubicación incorrecta. – Spudley

+2

¿Por qué? La "base de datos de ubicación IP" nunca ha sido, y nunca puede ser, una base de datos de las ubicaciones de las computadoras que usan una dirección IP particular. Nunca puede ser más que una base de datos de las ubicaciones de los proveedores de servicios de Internet que dieron las direcciones IP. En el mejor de los casos, se podría mantener la ubicación donde se usaría el ISP aunque se usaría la dirección IP. Y en mi caso, el enrutamiento se realizó en Londres, ¡así que todos los paquetes para EE. UU. Pasaron por el Reino Unido! –

Respuesta

11

HTML5 GeoLocation tiende a ser mucho más preciso que GeoLocation basado en IP.

GeoLocation basado en IP depende de las bases de datos asociadas con los ISP para averiguar dónde se encuentra. Esto no funciona bien cuando su ISP brinda servicios en un área muy grande y proporciona direcciones IP dinámicas. La dirección en una ciudad hoy podría estar a 100 millas de distancia mañana. Además, esas bases de datos generalmente no se actualizan con frecuencia. Si su ISP vende bloques de direcciones IP o los mueve a una nueva ciudad, la base de datos aún puede pensar erróneamente que está en otro lugar.

La ubicación HTML5 utiliza los servicios proporcionados por su navegador para averiguar dónde se encuentra. Si su computadora tiene GPS integrado (como en muchos dispositivos móviles y algunas computadoras portátiles), sabrá exactamente donde se encuentra. Esto lo hace mucho más útil para webapps que tienen un componente de navegación o ubicación. Para los dispositivos sin GPS, a menudo puede proporcionar una muy buena aproximación basada en señales inalámbricas conocidas cercanas y otros factores, como el rastreo de los enrutadores que su computadora utiliza al conectarse a Internet. La implementación exacta depende de la computadora, qué hardware tiene disponible y cómo el navegador elige hacer las cosas.

Por ejemplo, cuando miro un servicio de ubicación basado en IP, dice que estoy en una gran ciudad en particular en la misma área general en la que vivo, pero en realidad está a unas 50 millas de distancia. Cuando utilizo un servicio basado en la ubicación HTML5 para averiguar dónde estoy, solo está apagado en aproximadamente 20 bloques.

Si está desarrollando una aplicación web que necesita datos de ubicación, intente con utilizando HTML5 GeoLocation si es posible. Configure una alternativa, de modo que si falla la ubicación HTML5, puede usar una solución GeoIP en su lugar. De esta forma, obtendrá una precisión óptima en navegadores y dispositivos compatibles, pero aún tendrá una solución en su lugar cuando los datos HTML5 no estén disponibles.

Si utilizó el geolocation-javascript project from Google Code, podría utilizar el siguiente código:

//determine if device has geo location capabilities 
if(geo_position_js.init()){ 
    geo_position_js.getCurrentPosition(success_callback,error_callback); 
} 
else{ 
    // use an AJAX request to look up the location based on IP address 
} 
+1

'error_callback' bien podría hacer la solicitud de Ajax, por lo que simplemente podría llamar' error_callback() 'en el bloque' else'. –

+0

@ alpha123 buen punto, esa sería una forma más eficiente de hacerlo. – nhinkle

8

Geolocalización es un lote más preciso que la dirección IP, aunque ambos pueden ser falsificados.

La dirección IP solo le ofrece el país y la región en general.

Geolocalización le da:

  • Las coordenadas geográficas (latitud y longitud)
  • velocidad (asumiendo que estás en un dispositivo que puede medir esto, la mayoría de las tabletas y teléfonos inteligentes lata)
  • Altitud (esto también es dependiente en el dispositivo)
  • grados en sentido horario desde el norte (de nuevo, suponiendo que el dispositivo es compatible con este)

http://diveintohtml5.ep.io/geolocation.html tiene alguna buena información sobre geolocalización y la API de geolocalización de HTML5. Here's la Recomendación del candidato W3C.

2

La principal diferencia que verá es la precisión. Las direcciones IP solo te dan una idea muy general de dónde podría estar alguien ... La geolocalización te dirá exactamente dónde están. Para obtener más información sobre la geolocalización, vaya here, y se muestra una demostración de qué tan precisa puede ser here

1

La geolocalización HTML5 le da al cliente (navegador) la posibilidad de proporcionar la información de ubicación de la máquina. Esto es potencialmente de mayor magnitud que la ubicación de IP. Por ejemplo, el cliente podría tener hardware de GPS real instalado, o ser capaz de triangular la ubicación por puntos GSM o WiFi. Por otro lado, la ubicación por IP es muy aproximada y no siempre precisa y engañosa.

2

La obtención de la ubicación de un usuario a través de la dirección IP no es, con mucho, tan precisa. La ubicación de la dirección IP se basa principalmente en la ubicación del servidor real, que puede solicitarse. A menudo, esto está muy lejos de la ubicación real del usuario, por lo que solo proporciona la región básica.

La geolocalización HTML5, por otro lado, es más precisa, pero la información del usuario se usa para determinar la ubicación y, a menudo, también se acelera junto con otras cosas. Esto se basa en el GPS del dispositivo, si está disponible, y de lo contrario en la información ingresada por el usuario. Claramente, esto es mucho más preciso. Ambos métodos pueden ser falsificados.

2

Obtener la ubicación por dirección IP solo da una ubicación vaga (rara vez es más precisa que la ciudad, y con frecuencia mucho menos precisa que eso, dependiendo de su ubicación y su ISP).

También es a veces completamente inexacto: si utilizo una VPN para conectarme a la red de mi compañía, apareceré como en su oficina porque tendré una dirección IP de la oficina, pero podría estar conectando desde en cualquier lugar del mundo.

La geolocalización HTML5 puede ser mucho más precisa: si tiene un receptor GPS en su dispositivo, entonces es completamente preciso, pero incluso sin eso, en áreas densamente pobladas puede obtener su posición con una precisión de 20 metros o menos mapeando las señales de la red inalámbrica local. Y no importa cómo te hayas conectado, siempre será preciso.

Dado que la geolocalización de HTML5 es tan precisa, se considera un riesgo de privacidad, por lo que la especificación establece que debe otorgar permiso antes de que un sitio pueda usar sus datos de ubicación geográfica. Además, no todos los navegadores o máquinas pueden ser capaces de proporcionar los datos de ubicación geográfica. Por lo tanto, el sitio web debe poder hacer frente a los usuarios que no lo proporcionan, y no puede confiar en que se proporcione.

La ubicación de la dirección IP no tiene este tipo de restricción porque la asignación de ubicación la realiza el servidor utilizando los datos de asignación de ubicación de IP disponibles públicamente. El usuario final no puede evitar dar su dirección IP, por lo que no pueden evitar que el sitio web los trace usando.

Por lo tanto, los dos son completamente diferentes.

Cuestiones relacionadas