2012-04-16 6 views
6

Hice un sitio web y quiero leer la posición "real" GPS en el móvil (Android & iPhone). Cuando intento configurar la ubicación en mi sitio web desde mi Android con W3C método de JavaScript, el GPS no está habilitado y la posición está configurada por IP (cuando intento con la aplicación Google Maps, el GPS está habilitado y parpadea en la barra de estado). ¿Hay alguna forma de leer el GPS (GPS real) desde una web en un teléfono móvil? ¡Gracias de antemano!¿Puedo leer las coordenadas GPS móviles 'reales' de un sitio web?

Respuesta

7

Con HTML5 puede hacerlo. Es necesario comprobar Geolocalización API: Dive Into HTML5 y W3C Geolocation API Specification

El ejemplo más simple es así:

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition( 
     function (position) { 
      do_something(position.coords.latitude,position.coords.longitude); 
     }, 
     function (error){ 
      switch(error.code){ 
       case error.TIMEOUT: 
        // Timeout 
        break; 
       case error.POSITION_UNAVAILABLE: 
        // Position unavailable 
        break; 
       case error.PERMISSION_DENIED: 
        // Permission denied 
        break; 
       case error.UNKNOWN_ERROR: 
        // Unknown error 
        break; 
       default: break; 
      } 
     } 
    ); 
} 

Probablemente usted es también interesante en algunas implementaciones específicas del navegador: Mozilla, IE, Chrome

Actualizado. Como dijo Mozilla here, Los dispositivos con un GPS, por ejemplo, pueden tardar un minuto o más para obtener una corrección GPS, por lo que se pueden devolver datos menos precisos (ubicación IP o WiFi) a getCurrentPosition() para comenzar.

Por lo tanto, si necesita tener una alta precisión (como el GPS solamente), use watchPosition en lugar de getCurrentPosition.

+0

Gracias gakhov, pero con ese método, el móvil no usa el GPS real (no parpadea en la barra de estado): O – user512663

+0

Revisa mi actualización a la respuesta – gakhov

+0

Muchas gracias !! ;) Eso funciona :) – user512663

0

Como se indica en la especificación W3C, es posible que necesite utilizar el tercer argumento de watchPosition y getCurrentPosition, que es PositionOptions interface para establecer enableHighAccuracy en true; de ​​lo contrario, con su valor predeterminado falso, el GPS no será necesariamente encendido por el dispositivo.

Cuestiones relacionadas