Jquery mobile 使用Phonegap中的getCurrentPosition返回不准确的GPS坐标

Jquery mobile 使用Phonegap中的getCurrentPosition返回不准确的GPS坐标,jquery-mobile,cordova,geolocation,gps,Jquery Mobile,Cordova,Geolocation,Gps,我正在用JQuery mobile开发一个PhoneGap应用程序,它需要地理位置数据。当前,getCurrentPosition()返回的位置非常不准确,有时甚至不超过一英里。该应用程序似乎正在使用谷歌定位服务获取这些职位。有没有办法强制应用程序使用GPS 第一次发布职位时,通常会返回一个旧职位(即使maximumAge设置为0)。有人知道为什么会这样吗 我已经阅读了下面的地理定位API,没有找到任何东西 您可以尝试的两件事是确保在调用getCurrentPosition时将EnableHig

我正在用JQuery mobile开发一个PhoneGap应用程序,它需要地理位置数据。当前,getCurrentPosition()返回的位置非常不准确,有时甚至不超过一英里。该应用程序似乎正在使用谷歌定位服务获取这些职位。有没有办法强制应用程序使用GPS

第一次发布职位时,通常会返回一个旧职位(即使maximumAge设置为0)。有人知道为什么会这样吗

我已经阅读了下面的地理定位API,没有找到任何东西


您可以尝试的两件事是确保在调用getCurrentPosition时将EnableHighAccurance参数设置为true


然而,大多数GPS芯片需要一段时间才能得到准确的位置。更好的解决方案是调用watchPosition并等待得到3到5个结果,因为在这种情况下,您会发现精确度要高得多。然后,您可以执行clearWatch并使用更精确的GPS位置。

您可以尝试的两件事是确保在调用getCurrentPosition时将EnableHighAccurance参数设置为true


然而,大多数GPS芯片需要一段时间才能得到准确的位置。更好的解决方案是调用watchPosition并等待得到3到5个结果,因为在这种情况下,您会发现精确度要高得多。然后,您可以执行clearWatch并使用更精确的GPS位置。

这是地理定位API,而不是硬件GPS定位-因此您可能只能获得网络位置。
一些股票浏览器也有一个接近“功能”。。。例如,对于Fennec,它可以正常工作。

这是地理定位API,而不是硬件GPS定位-因此您可能只能获得网络位置。
一些股票浏览器也有一个接近“功能”。。。例如,对于Fennec,它可以很好地工作。

与其他写入程序一样。getCurrentPosition不一定精确到仪表,这完全取决于GPS是否处于活动状态

GetCurrentPosition用于快速获取搜索位置和初始位置,同时GPS获取propper定位

我通常会这样做:

//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将得到一个快速发布,并且该职位的watch功能将被反复调用


因此,如果您希望获得准确的坐标,您可以在回调函数中检查:
位置.coords.accurity
以米为单位的精度。

正如其他人所写。getCurrentPosition不一定精确到仪表,这完全取决于GPS是否处于活动状态

GetCurrentPosition用于快速获取搜索位置和初始位置,同时GPS获取propper定位

我通常会这样做:

//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将得到一个快速发布,并且该职位的watch功能将被反复调用


因此,如果您希望获得准确的坐标,您可以在回调功能中检查:
position.coords.accurity
以米为单位的精度。

使用watchPosition/clearWatch而不是getCurrentPosition似乎干扰了我在设备上的另一个GPS应用程序。一旦我试图通过watchPostion获取位置,我的另一个应用程序就会停止接收新坐标。你知道为什么会这样吗?@user1014759有点晚了,但这可能是因为你使用了相同的变量。例如,如果您正在使用var-onSuccess=function(position),则需要将其更改为var-theSuccess=function(position)。错误处理程序中使用的变量也是如此,例如函数forErrors(error)。为我工作。使用watchPosition/clearWatch而不是getCurrentPosition似乎干扰了我在设备上的另一个GPS应用程序。一旦我试图通过watchPostion获取位置,我的另一个应用程序就会停止接收新坐标。你知道为什么会这样吗?@user1014759有点晚了,但这可能是因为你使用了相同的变量。例如,如果您正在使用var-onSuccess=function(position),则需要将其更改为var-theSuccess=function(position)。错误处理程序中使用的变量也是如此,例如函数forErrors(error)。为我工作。谢谢@Kim,你的解决方案对我非常有用@Kim,你的解决方案对我非常有用