La API de geolocalización del W3C es un esfuerzo del World Wide Web Consortium (W3C) para estandarizar una interfaz para recuperar la información de ubicación geográfica de un dispositivo del lado del cliente. [3] Define un conjunto de objetos, compatibles con el estándar ECMAScript , que al ejecutarse en la aplicación cliente brindan la ubicación del dispositivo del cliente a través de la consulta de Servidores de información de ubicación , que son transparentes para la interfaz de programación de aplicaciones (API). Las fuentes más comunes de información de ubicación son la dirección IP , la dirección MAC de Wi-Fi y Bluetooth , la identificación por radiofrecuencia (RFID), la ubicación de la conexión Wi-Fi o el sistema de posicionamiento global (GPS) del dispositivo y las identificaciones de celda GSM / CDMA . La ubicación se devuelve con una precisión determinada dependiendo de la mejor fuente de información de ubicación disponible.
El resultado de la API de geolocalización del W3C generalmente proporcionará 4 propiedades de ubicación, incluidas latitud y longitud (coordenadas), altitud (altura) y precisión [de la posición recopilada], todas las cuales dependen de las fuentes de ubicación. [ cita necesaria ]
Las páginas web pueden utilizar la API de geolocalización directamente si el navegador web la implementa. Históricamente, algunos navegadores podían obtener soporte a través del complemento Google Gears , pero esto se suspendió en 2010 y la API del lado del servidor de la que dependía dejó de responder en 2012. [4] [5]
La API de geolocalización es ideal para aplicaciones web para dispositivos móviles como teléfonos inteligentes . En computadoras de escritorio, la API de geolocalización del W3C funciona en Firefox desde la versión 3.5, Google Chrome , [6] Opera 10.6, [7] Internet Explorer 9.0, [8] y Safari 5. En dispositivos móviles, funciona en Android (firmware 2.0+ ), iOS , Windows Phone y Maemo . La API de geolocalización del W3C también es compatible con Opera Mobile 10.1, disponible para dispositivos Android y Symbian (S60 generaciones 3 y 5) desde el 24 de noviembre de 2010. [9] Los navegadores inicialmente permitían el acceso a la API en contextos inseguros, pero en el contexto de Secure Contextos, [10] navegadores, por ejemplo, Chrome, [11] ahora generalmente requieren una conexión segura.
Google Gears brindó soporte de geolocalización para navegadores más antiguos y no compatibles, incluido Internet Explorer 7.0+ como complemento de Gears y Google Chrome, que implementó Gears de forma nativa. También admitía la geolocalización en dispositivos móviles como complemento para el navegador de Android (versión anterior a 2.0) y Opera Mobile para Windows Mobile . Sin embargo, la API de geolocalización de Google Gears es incompatible con la API de geolocalización del W3C y ya no es compatible.
La API de geolocalización no proporciona información de ubicación. La información de ubicación se obtiene mediante un dispositivo (como un teléfono inteligente, una PC o un módem), que luego es proporcionada por la API que se introduce en el navegador. Por lo general, la geolocalización intentará determinar la posición de un dispositivo utilizando uno de estos varios métodos.
Aunque no se especifica la implementación, la API de geolocalización del W3C se basa en tecnologías existentes y está fuertemente influenciada por la API de geolocalización de Google Gears. Ejemplo: la implementación de Geolocalización de Firefox [12] utiliza el proveedor de ubicación de red de Google. [5] Google Gears Geolocation funciona enviando un conjunto de parámetros que podrían dar una pista sobre dónde está la ubicación física del usuario a un servidor proveedor de ubicación de red, que es por defecto el proporcionado por Google (code.l.google.com). ). [13] Algunos de los parámetros son listas de torres de telefonía móvil detectadas y redes Wi-Fi, todas con intensidades de señal detectadas. Estos parámetros se encapsulan en un mensaje de notación de objetos JavaScript ( JSON ) y se envían al proveedor de ubicación de red a través de HTTP POST. Según estos parámetros, el proveedor de ubicación de la red puede calcular la ubicación. Los usos comunes de esta información de ubicación incluyen hacer cumplir los controles de acceso, localizar y personalizar contenido, analizar el tráfico, publicidad contextual y prevenir el robo de identidad. [14]
Código JavaScript simple que verifica si el navegador tiene implementada la API de geolocalización y luego la usa para obtener la posición actual del dispositivo. este código crea una función que se puede llamar en HTML usando <body onload="geoFindMe()">
:
const geoFindMe = () => { if ( navigator . geolocalización ) { navigator . geolocalización . getCurrentPosition ( éxito , error , geoOptions ); } más { consola . log ( "Su navegador web no admite los servicios de geolocalización." ); } } éxito constante = ( posición ) => { latitud constante = posición . coordenadas . latitud ; longitud constante = posición . coordenadas . longitud ; altitud constante = posición . coordenadas . altitud ; Precisión constante = posición . coordenadas . exactitud ; consola . iniciar sesión ( `lat: ${ latitud } long: ${ longitud } ` ); } error constante = ( error ) => { consola . log ( `No se puede recuperar su ubicación debido a ${ error . código } : ${ error . mensaje } ` ); } const geoOptions = { enableHighAccuracy : verdadero , edad máxima : 30000 , tiempo de espera : 27000 };