Возврат неточной координаты GPS с использованием getCurrentPosition в Phonegap - PullRequest
1 голос
/ 28 февраля 2012

Я разрабатываю приложение PhoneGap для мобильного телефона JQuery, для которого требуются данные геолокации. В настоящее время позиции, возвращаемые getCurrentPosition (), очень неточны, иногда на расстоянии до мили. Похоже, что приложение использует службы определения местоположения Google для приобретения позиций. Есть ли способ заставить приложение использовать GPS?

Кроме того, при первой публикации позиции она часто возвращает старую позицию (даже если для параметра MaximumAge установлено значение 0). Кто-нибудь знает, почему это может быть?

Я прочитал API геолокации ниже и не смог ничего найти.

http://dev.w3.org/geo/api/spec-source.html

Ответы [ 3 ]

5 голосов
/ 28 февраля 2012

Несколько вещей, которые вы можете попробовать, это убедиться, что вы устанавливаете для параметра enableHighAccuracy значение true при вызове getCurrentPosition.

Однако большинству чипов GPS требуется немного времени, чтобы получить точное местоположение. Лучшее решение - вызвать watchPosition и подождать, пока вы не получите 3-5 результатов, поскольку в этом случае точность будет намного выше. Тогда вы можете сделать clearWatch и использовать более точную позицию GPS.

2 голосов
/ 29 февраля 2012

Как пишет другой.getCurrentPosition не обязательно является точным для измерителя, все зависит от того, активен GPS или нет ..

Функция getCurrentPossition предназначена для быстрого получения позиции для поиска и начальной позиции, в то время как GPS получает поправку..

Обычно я делаю это:

//Initialize GPS
navigator.geolocation.getCurrentPosition(onGPSSuccess, onGPSError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 
navigator.geolocation.watchPosition(onGPSSuccess, onGPSError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 

Thant получит быстрое сообщение, и функция часов будет неоднократно вызываться для позиции ..

Так что если выожидайте точную координату, которую вы можете проверить: position.coords.accuracy для точности в метрах в функции обратного вызова.

0 голосов
/ 29 февраля 2012

Это API геолокации, а не аппаратное исправление GPS, поэтому вы можете получить только сетевое местоположение. Некоторые стоковые браузеры также имеют функцию «близости» ... например, с Fennec он работает нормально.

...