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

时间:2012-02-28 14:18:49

标签: jquery-mobile cordova geolocation gps

我正在开发一个使用JQuery mobile的PhoneGap应用程序,它需要地理定位数据。目前,getCurrentPosition()返回的位置非常不准确,有时甚至达不到一英里。看来应用程序正在使用谷歌位置服务来获取位置。有没有办法强迫应用程序使用GPS?

同样第一次发布位置时,它通常会返回旧位置(即使maximumAge设置为0)。有谁知道为什么会这样?

我已阅读下面的地理位置API,但无法找到任何内容。

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

3 个答案:

答案 0 :(得分:5)

您可以尝试的一些事情是确保在调用getCurrentPosition时将enableHighAccuracy参数设置为true。

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

答案 1 :(得分:2)

正如其他人写的那样。 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将获得快速发布,并且watch函数将反复调用该位置..

因此,如果你期望一个准确的坐标,你可以检查:position.coords.accuracy以获得回调函数中米的准确度。

答案 2 :(得分:0)

这是Geolocation API,而不是硬件GPS修复 - 因此您可能只获得网络位置。 一些股票浏览器也有一个接近的“功能”...例如,使用Fennec它工作正常。