Android 最准确的 Location API

新手上路,请多包涵

为了工作,我的应用程序需要一个位置 API。我打算使用 Mapbox 平台来定制它的设计(因为据我所知,谷歌地图不提供这种级别的定制)。

文档说我们应该在构建位置应用程序时使用 Google Play API:

Google Play 服务位置 API 优于 Android 框架位置 API (android.location),作为一种向您的应用程序添加位置感知的方式。如果您目前正在使用 Android 框架位置 API,强烈建议您尽快切换到 Google Play 服务位置 API。

我的问题是:就 GPS 精度而言,Google Play API 是最有效的 API 吗?或者我应该使用 LocationManager 和 LocationListener 的方式吗?

我需要准确性。我应该使用哪一个?谢谢。

原文由 AndroidDev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 567
2 个回答

在android中也有三种类型的位置:

  1. GPS_PROVIDER
  2. 网络提供商
  3. 被动提供者

所以,根据我的编码经验,我知道如果你使用:

 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener());

您将获得高达 14 位以上小数位的精度。

但是如果你像这样使用它们的融合:

 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, my_google_listener);

您将获得高达 6 到 7 位小数的精度。尝试一下 !!! 参考

但请注意这里的一些事情,GPS Provider 需要时间来获取位置,而 Google Location 更快,因为它从 API 调用获取数据到其谷歌服务器数据库。

GPS 离线工作,而谷歌提供商通过移动或 wifi 数据获取位置。

原文由 Dharvik shah 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 FusedLocationProviderApi 并将 LocationRequest 优先级设置为 PRIORITY_HIGH_ACCURACY

这是用于准确获取位置的最新 API,谷歌建议使用相同的 API。

在此处 检查精度详细信息。

基本上,Google Play 服务 API 具有智能,可以通过融合 GPS+NetworkProvider+passive 提供者来获得准确的位置。

原文由 NitZRobotKoder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题