2011-10-10 18 views
10

Parece que phonegap no utiliza el satélite GPS en lugar de la geolocalización de la red celular. No estoy satisfecho con la precisión, siempre entre 150-1000 metros. El logotipo de actividad de GPS tampoco se muestra.Phonegap Android y satélite GPS

¿Hay alguna manera de forzar a una aplicación de Android a usar satélites GPS incluso si hay otros métodos disponibles? ¿Hay alguna manera de anular la función predeterminada para activar el uso del GPS sat?

Gracias de antemano

+1

Esto se ha ampliado aquí http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet – Andy

+2

¿Has encontrado una solución? Es lo mismo para mí con Cordova 3.0.0, el icono de gps no se muestra incluso con enableHighAccuracy: true. – arlg

Respuesta

11

PhoneGap utiliza realmente geolocalización por satélite GPS al igual que lo hace la plataforma Android. Debería recibir ubicaciones con una precisión más precisa que 150 m si el GPS de su teléfono está habilitado. Siempre que llame a los métodos geolocation.getCurrentPosition() o geolocation.watchPosition(), la clase GeoListener de PhoneGap solicita un proveedor de GPS y un proveedor de RED, entonces crea un detector para ambos proveedores, si existen. Esta es la razón por la que obtiene una amplia gama de precisiones.

Por lo tanto, en caso de que desee forzar ubicaciones de alta precisión, puede establecerlo en verdadero en el parámetro geolocationOptions pasado a los métodos anteriores. Compruebe la API: geolocationOptions

navigator.geolocation.watchPosition(
    onSuccess, onError, 
    { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 

En caso de que quiera tener un mayor control y un comportamiento más preciso de la ubicación solicita puede extender API de PhoneGap para hacerlo.

+6

Es lo mismo para mí con Cordova 3.0.0, el icono de GPS no se muestra incluso con enableHighAccuracy: true, y la aplicación no obtiene la buena posición. – arlg

+1

El mismo problema, el proveedor de GPS parece ser ignorado, solo se usa el proveedor de la red. Si desactivo el proveedor de red (GPS activado), no se realiza la positión. ADEMÁS, cuando vuelvo a configurar el proveedor de red, parece que la aplicación lo ignora, ya no se detecta y tengo que cerrar la aplicación y reiniciarla. – smarques

+0

Tengo el mismo problema con la API de geolocalización y un dispositivo Android. El establecimiento de enableHighAccuracy como verdadero todavía parece preferir la ubicación basada en la red o en la célula. Si enciendo AIRPLANE MODE, el GPS parece ser utilizado, y se devuelve una ubicación realmente exacta. Sin embargo, no puedo esperar que mis usuarios activen el modo avión para usar esta aplicación, por lo que aún estoy buscando una solución. – Fingel