2011-10-10 5 views
10

Il semble que phonegap n'utilise pas le satellite GPS à la place de la géolocalisation du réseau cellulaire. Je ne suis pas satisfait de la précision, toujours entre 150-1000 mètres. Le logo d'activité GPS ne s'affiche pas également.Phonegap Android et GPS par satellite

Existe-t-il un moyen de forcer une application Android à utiliser les satellites GPS même si d'autres méthodes sont disponibles? Est-il possible de remplacer la fonction par défaut pour activer l'utilisation du GPS?

Merci à l'avance

+1

Ceci a été consulté ici http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet – Andy

+2

Avez-vous trouvé une solution? C'est la même chose pour moi avec Cordova 3.0.0, L'icône GPS ne s'affiche pas même avec enableHighAccuracy: true. – arlg

Répondre

11

PhoneGap utilise en fait la géolocalisation par satellite GPS comme plate-forme Android fait. Vous devriez recevoir des emplacements avec une précision plus précise que 150m si le GPS de votre téléphone est activé. Chaque fois que vous appelez les méthodes geolocation.getCurrentPosition() ou geolocation.watchPosition(), la classe GeoListener de PhoneGap demande un fournisseur GPS et un fournisseur NETWORK, puis il crée un écouteur pour les deux fournisseurs, s'ils existent. C'est la raison pour laquelle vous obtenez un large éventail de précisions. Par conséquent, si vous souhaitez forcer des emplacements de haute précision, vous pouvez définir cette valeur sur true sur le paramètre geolocationOptions transmis aux méthodes ci-dessus.

Vérifiez l'API: geolocationOptions

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

Si vous voulez avoir plus de contrôle et un comportement plus précis de l'emplacement vous demande pouvez étendre l'API PhoneGap de le faire.

+6

C'est la même chose pour moi avec Cordova 3.0.0, l'icône GPS ne s'affiche pas même avec enableHighAccuracy: vrai, et l'application ne obtient pas la bonne position. – arlg

+1

Même problème, le fournisseur de GPS semble être ignoré, seul le fournisseur de réseau est utilisé. Si le fournisseur de réseau est désactivé (GPS activé), aucun positionnement n'est effectué. De plus, quand je repositionne le fournisseur de réseau, il semble que l'application l'ignore, elle n'est plus détectée et je dois fermer l'application et la redémarrer. – smarques

+0

J'ai le même problème avec l'API de géolocalisation et un appareil Android. Définir enableHighAccuracy sur true semble toujours préférer l'emplacement basé sur la cellule ou le réseau. Si j'active le MODE AVION, le GPS semble être utilisé et un emplacement vraiment exact est renvoyé. Je ne peux pas m'attendre à ce que mes utilisateurs activent le mode Avion pour utiliser cette application, donc je suis toujours à la recherche d'une solution. – Fingel