2011-10-10 54 views
10

似乎phonegap不使用GPS卫星,而是从蜂窝网络中取代地理定位。 我对精度不满意,总是在150-1000米之间。 GPS活动标识也不显示。Phonegap Android和GPS卫星

有什么办法可以强制android应用程序使用GPS卫星,即使其他方法可用?有什么方法可以覆盖默认功能来激活GPS坐标使用?

在此先感谢

+1

此问题已在此处回答http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet – Andy

+2

您是否找到了解决方案?对于我来说Cordova 3.0.0也是如此,即使使用enableHighAccuracy:true,gps图标也不会显示。 – arlg

回答

11

PhoneGap的实际使用GPS卫星地理位置就像Android平台一样。如果您的手机的GPS已启用,您应该接收的地点精确度超过150米。无论您何时拨打geolocation.getCurrentPosition()geolocation.watchPosition()方法,PhoneGap的GeoListener类都会要求GPS提供商为网络提供商,那么它会为两个提供商(如果存在)创建侦听器。这就是您获得广泛准确度的原因。

因此,如果你想强制高精度位置,你可以在传递给上述方法的参数geolocationOptions上设置为true。检查API:geolocationOptions

navigator.geolocation.watchPosition(
    onSuccess, onError, 
    { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 

如果你想有更多的控制和位置的更准确的行为,请求可以扩展的PhoneGap的API这样做。

+6

对于我来说Cordova 3.0.0也是如此,即使使用enableHighAccuracy:true,gps图标也不会显示,并且应用程序无法获得好位置。 – arlg

+1

同样的问题,GPS提供商似乎被忽视,只有网络提供商正在使用。如果我关闭网络供应商(GPS开启),则不执行定位。 PLUS,当我重新设置网络提供商时,它似乎应用程序忽略它,它不再被检测到,我必须关闭应用程序并重新启动它。 – smarques

+0

我有与地理定位API和Android设备相同的问题。将enableHighAccuracy设置为true依然似乎更喜欢基于单元或网络的位置。如果我打开AIRPLANE MODE,似乎会使用GPS,并返回一个确切的确切位置。我很难指望我的用户使用这个应用程序来开启飞行模式,所以我仍然在寻找解决方案。 – Fingel