Я нашел много вопросов о координатах GPS, но не тот, который подтверждает использование мобильного оборудования GPS вместо Web GPS, такого как geoLocation и т. П.Получить координаты из оборудования GPS
Мой фактический метод:
Я использую navigator.geolocation.getCurrentPosition()
, то Lat/Long
приходит из Интернета, вот код:
function getGPS(funcCallBack)
{
if (navigator.geolocation)
{
var timeoutVal = getCookie("GPSTimeout");
navigator.geolocation.getCurrentPosition(sucess
,error
,{enableHighAccuracy: true
,timeout: timeoutVal
,maximumAge: 0}
);
}
else{
alert('GPS is turned off, or was not possible to find it. Now, doing the login without localization.');
window.gpsLat = 0;
window.gpsLng = 0;
window.gpsAcc = 0;
funcCallBack();
}
function sucess(position) //sucess
{
window.gpsLat = position.coords.latitude;
window.gpsLng = position.coords.longitude;
window.gpsAcc = position.coords.accuracy;
funcCallBack();
}
function error() //error
{
window.gpsLat = 0;
window.gpsLng = 0;
window.gpsAcc = 0;
funcCallBack();
}
}
Моя проблема:
Иногда, когда я сделать логин Я не получаю координаты GPS (они приходят 0), и иногда я получаю координаты с более чем 2 000 Точность (это n от точного).
Кстати, я тестирую GPS на интернет-сервисе данных, когда я использую Wi-Fi-соединение, он отлично работает с точностью менее 100 Точность.
Детали:
Может быть, вы жалуетесь:
timeoutVal
: это печенье с номером5000
внутри него.funcCallBack
: это функция, которая продолжает операцию входа в систему.window.gpsLat
: это глобальный var, содержащий значениеLatitude
, полученное отgeoLocation
.window.gpsLng
: это глобальный var, содержащий значениеLongitude
, полученное отgeoLocation
.window.gpsAcc
: это глобальный var, содержащий значениеAccuracy
, полученное отgeoLocation
.
Что мне нужно?
Я хочу решение в JavaScript или PHP, которое может получать координаты с мобильного устройства, собственного GPS, а не на геолокации, а когда основной GPS отключен, попросите пользователя включить его.
иногда первые показания пары являются пятнистыми, в то время как GPS «прогревается» до спутниковой антенны над вашим конкретным местоположением. вы также можете проверить частоту возвратов на watchPosition(), чтобы обнаружить gps/wifi: wifi не обновляется очень часто, но gps немного шумит. – dandavis
Как eddiec предложил в последних строках своего ответа, если вы создаете мобильное приложение, вы должны _definitely_ использовать фреймворк, такой как PhoneGap, который предлагает в большинстве случаев полный или полу-полный доступ к встроенной реализации GPS. Использование встроенных браузеров - слабая идея. BTW: Не путайте. API-интерфейс PhoneGap имеет те же имена функций для объекта Geolocation, как Geolocation в браузерах (HTML5), но обеспечивает более адекватную встроенную поддержку GPS. – trejder