La API de Geolocalización HTML se utiliza para localizar la posición de un usuario.
¿Qué hay W3C Geolocalización API?
La API de ubicación geográfica de W3C es un esfuerzo de la World Wide Web Consortium (W3C) para estandarizar una interfaz para recuperar la información de ubicación geográfica para un dispositivo del lado del cliente.
Se define un conjunto de objetos, compatible con el estándar ECMAScript, que la ejecución de la aplicación cliente da ubicación del dispositivo del cliente a través de la consulta de servidores de información de la 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, Wi-Fi y Bluetooth dirección MAC, la identificación por radiofrecuencia (RFID), ubicación de la conexión Wi-Fi, o un dispositivo de sistema de posicionamiento global (GPS) y los ID de celulares GSM / CDMA.
La ubicación se devuelve con una precisión dada en función de la mejor fuente de información de ubicación disponible.
Despliegue en los navegadores web
Las páginas web pueden utilizar la API de geolocalización directamente si el navegador web implementa. Históricamente, algunos navegadores podrían obtener ayuda a través del plugin de Google Gears, pero esto fue descontinuado en 2010 y la API del servidor que dependía dejado de responder en el año 2012.
La API de geolocalización es ideal para aplicaciones web para dispositivos móviles tales como asistentes personales digitales (PDA) y teléfonos inteligentes. En los equipos de escritorio, la API de ubicación geográfica de W3C trabaja en Firefox desde la versión 3.5, Google Chrome, Opera 10.6, Internet Explorer 9.0 y Safari 5. En los dispositivos móviles, funciona en Android (firmware 2.0+), iOS, Windows Phone y Maemo.
La API de ubicación geográfica de W3C también es apoyado por Opera Mobile 10.1 - disponible para Android y Symbian S60 generaciones dispositivos (3 y 5) desde el 24 de noviembre, 2010.
Google Gears proporcionó apoyo de geolocalización para exploradores más antiguos y no conformes, incluyendo Internet Explorer 7.0 o superior como un plugin Gears, y Google Chrome, que implementa los engranajes de forma nativa. También apoyó geolocalización en dispositivos móviles como un plugin para el navegador de Android (versión 2.0 pre) y Opera Mobile para Windows Mobile.
Sin embargo, la API de Google Gears geolocalización es incompatible con la API de ubicación geográfica de W3C y ya no es compatible.
Caracteristicas
El resultado de W3C Geolocalización API normalmente dará 4 propiedades de la ubicación, incluyendo latitud y longitud (coordenadas), la altitud (altura), y [precisión de la posición reunida], todos los cuales dependen de las fuentes de ubicación.
En algunas consultas, la altitud puede dar o devolver ningún valor.
Localizar la posición del usuario
La API de Geolocalización HTML se utiliza para obtener la posición geográfica de un usuario.
Dado que esto puede comprometer la privacidad, la posición no está disponible a menos que el usuario lo apruebe.
Soporte del navegador
Los números de la tabla especifican la primera versión del navegador que es totalmente compatible con geolocalización.
API | |||||
---|---|---|---|---|---|
Geolocation | 5.0 | 9.0 | 3.5 | 5.0 | 16.0 |
Note: Geolocalización es mucho más preciso para los dispositivos con GPS, como el iPhone .
Usando Geolocalización HTML
El getCurrentPosition() método se utiliza para obtener la posición del usuario.
El ejemplo a continuación devuelve la latitud y longitud de la posición del usuario:
Ejemplo
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
Inténtalo tú mismo " Ejemplo explicó:
- Comprobar si es compatible Geolocalización
- Si es compatible, ejecute el getCurrentPosition() método. Si no, mostrar un mensaje al usuario
- Si el getCurrentPosition() método tiene éxito, se devuelve un coordenadas del objeto a la función especificada en el parámetro (showPosition)
- El showPosition() la función da salida a la latitud y longitud
El ejemplo anterior es un guión muy básico Geolocalización, sin control de errores.
Gestión de errores y rechazos
El segundo parámetro de la getCurrentPosition() método se utiliza para controlar los errores. En él se especifica una función a ejecutar en caso de no obtener la ubicación del usuario:
Ejemplo
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
Inténtalo tú mismo " Viendo el resultado en un mapa
Para visualizar el resultado en un mapa, es necesario tener acceso a un servicio de mapas, como Google Maps.
En el siguiente ejemplo, la latitud y longitud devuelto se utiliza para mostrar la ubicación en un mapa de Google (using a static image) :
Ejemplo
function showPosition(position) {
var latlon = position.coords.latitude + "," + position.coords.longitude;
var img_url = "http://maps.googleapis.com/maps/api/staticmap?center=
"+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}
Inténtalo tú mismo " Texto de mapa de Google
Cómo mostrar un mapa interactivo de Google con un marcador, zoom y las opciones de arrastre.
Información específica de la ubicación
Esta página demuestra cómo mostrar la posición de un usuario en un mapa.
Geolocalización también es muy útil para obtener información específica de la ubicación, como:
- Hasta a la fecha de información local
- Mostrando sobre Puntos de interés cerca del usuario
- Paso a paso para la navegación (GPS)
El getCurrentPosition() Método - Devolver datos
El getCurrentPosition() método devuelve un objeto si tiene éxito. Las propiedades de latitud, longitud y precisión siempre se devuelven. Las demás propiedades se devuelven si está disponible:
Propiedad | Devoluciones |
---|---|
coords.latitude | La latitud como un número decimal |
coords.longitude | La longitud como un número decimal |
coords.accuracy | La precisión de posición |
coords.altitude | La altitud en metros por encima del nivel medio del mar |
coords.altitudeAccuracy | La precisión de la posición de altitud |
coords.heading | La partida que grados respecto al norte |
coords.speed | La velocidad en metros por segundo |
timestamp | La fecha / hora de la respuesta |
objeto de geolocalización - Otros métodos interesantes
watchPosition() - Devuelve la posición actual del usuario y continúa para volver posición actualizada como el usuario se mueve (like the GPS in a car) .
clearWatch() - Detiene la watchPosition() método.
El ejemplo siguiente muestra la watchPosition() método. Es necesario un dispositivo GPS precisa para probar esta (like iPhone ) :
Ejemplo
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.watchPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
Inténtalo tú mismo "