Phonegap Android and GPS satellite

slmglr picture slmglr · Oct 10, 2011 · Viewed 12.7k times · Source

It seems phonegap does not use GPS satellite instead geolocation from cellular network. I am not satisfied with the accuracy, always between 150-1000 meters. GPS activity logo is not displayed as well.

Is there any way to force an android app to use GPS satellites even if other methods are available? Is there any way to override the default function to activate the GPS sat usage?

Thanks in advance

Answer

sgimeno picture sgimeno · Jan 9, 2012

PhoneGap actually uses GPS satellite geolocation just as Android platform does. You should be receiving locations with a more precise accuracy than 150m if your phone's GPS is enabled. Whenever you call the geolocation.getCurrentPosition() or geolocation.watchPosition() methods, PhoneGap's GeoListener class asks for a GPS provider and a NETWORK provider, then it creates a listener for both providers, if they exist. This is the reason you are getting a wide range of accuracies.

So in case you want to force high accuracy locations, you could set it to true on the geolocationOptions parameter passed to the above methods. Check the API: geolocationOptions

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

In case you want to have more control and a more accurate behaviour of location requests you can extend PhoneGap's API to do so.