Ответ 1
PhoneGap фактически использует геолокацию GPS-спутников, как это делает платформа Android. Вы должны получать места с более точной точностью, чем 150 м, если ваш телефон GPS включен. Всякий раз, когда вы вызываете методы geolocation.getCurrentPosition()
или geolocation.watchPosition()
, класс PhoneGap GeoListener
запрашивает провайдера GPS и поставщика NETWORK, тогда он создает слушателя для обоих поставщиков, если они существуют. Именно по этой причине вы получаете широкий диапазон точности.
Поэтому, если вы хотите принудительно установить местоположения высокой точности, вы можете установить его значение true в параметре geolocationOptions
, переданном вышеуказанным методам. Проверьте API: geolocationOptions
navigator.geolocation.watchPosition(
onSuccess, onError,
{ maximumAge: 3000, timeout: 5000, enableHighAccuracy: true });
Если вы хотите получить больше контроля и более точное поведение запросов местоположения, вы можете расширить API PhoneGap для этого.