【问题标题】:Phonegap Android and GPS satellitePhonegap Android 和 GPS 卫星
【发布时间】:2011-12-04 14:06:18
【问题描述】:

似乎 phonegap 不使用 GPS 卫星,而是使用蜂窝网络进行地理定位。 我对精度不满意,总是在150-1000米之间。 GPS 活动标志也不显示。

即使有其他方法可用,是否有任何方法可以强制 Android 应用使用 GPS 卫星?有没有办法覆盖默认功能来激活 GPS sat 使用?

提前致谢

【问题讨论】:

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

标签: android geolocation gps cordova satellite


【解决方案1】:

PhoneGap 实际上与 Android 平台一样使用 GPS 卫星地理定位。如果您的手机启用了 GPS,您应该会收到比 150m 更精确的位置。每当您调用geolocation.getCurrentPosition()geolocation.watchPosition() 方法时,PhoneGap 的GeoListener 类都会要求提供GPS 提供程序 网络提供程序,然后它会为这两个提供程序创建一个侦听器(如果它们存在)。这就是您获得广泛准确度的原因。

因此,如果您想强制进行高精度定位,您可以在传递给上述方法的 geolocationOptions 参数上将其设置为 true。查看API:geolocationOptions

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

如果您希望对位置请求进行更多控制和更准确的行为,您可以扩展 PhoneGap 的 API 来实现。

【讨论】:

  • Cordova 3.0.0 对我来说也是如此,即使使用 enableHighAccuracy 也不显示 gps 图标:true,并且应用程序没有获得良好的位置。
  • 同样的问题,GPS 提供商似乎被忽略了,只有网络提供商在使用。如果我关闭网络提供商(GPS 开启),则不会执行定位。另外,当我重新打开网络提供商时,应用程序似乎忽略了它,不再检测到它,我必须关闭应用程序并重新启动它。
  • 我在地理定位 API 和安卓设备上遇到了同样的问题。将 enableHighAccuracy 设置为 true 似乎仍然更喜欢基于单元或网络的位置。如果我打开 AIRPLANE MODE,则似乎使用了 GPS,并返回了真正准确的位置。我很难指望我的用户打开飞行模式来使用这个应用程序,所以我仍在寻找解决方案。
  • 如果您想更好地控制哪个提供商正在使用 Android,您可以编写自己的插件来扩展该功能。无论如何,认为 GPS 始终提供比 CELL 或 NETWORK 提供商更准确的位置是一个常见错误。假设您的用户在建筑物内,网络提供商可能会提供比 GPS 更精确的位置。
猜你喜欢
  • 1970-01-01
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
相关资源
最近更新 更多