Los últimos tutoriales de desarrollo web

Geolocalización HTML5


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 "