首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android最精确的定位API

Android最精确的定位API
EN

Stack Overflow用户
提问于 2016-07-25 22:50:51
回答 4查看 27.7K关注 0票数 18

为了工作,我的应用程序需要一个位置API。我打算使用Mapbox平台来定制它的设计(就我而言,Google并不提供这种程度的定制)。

文档指出,在构建位置应用程序时,我们应该使用Google:

Google服务位置API比android.location (android.location)更受欢迎,它是向应用程序添加位置感知的一种方式。如果您目前正在使用Android框架位置API,则强烈鼓励您尽快切换到Google服务位置API。

我的问题是:当提到GPS精度时,Google是最有效的API吗?或者我应该使用LocationManager和LocationListener的方式来完成它呢?

我需要准确。我应该用哪一种?谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-08-01 21:23:48

在android系统中,还有三种类型的位置:

  1. GPS_PROVIDER
  2. NETWORK_PROVIDER
  3. PASSIVE_PROVIDER

因此,根据我的编码经验,我知道如果您使用:

代码语言:javascript
运行
复制
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener());

您将获得精确到14+小数位。

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

代码语言:javascript
运行
复制
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, my_google_listener);

您将获得6至7位小数点以下的精度。试试!参考文献

但是这里要注意的是,GPS提供者需要时间来获取位置,而Google位置则要快得多,因为它可以从API调用中获取数据到google服务器数据库。

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

票数 19
EN

Stack Overflow用户

发布于 2016-07-28 12:01:09

使用FusedLocationProviderApi并将LocationRequest优先级设置为准确度

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

检查准确性细节这里

基本上,Google服务API具有通过融合GPS+NetworkProvider+passive提供商获得精确定位的智能。

票数 6
EN

Stack Overflow用户

发布于 2017-11-23 08:23:32

FusedLocationProviderApi is deprecated.You应该使用FusedLocationProviderClient,您应该添加ACCESS_FINE_LOCATION权限,而不是ACCESS_COARSE_LOCATION来获得最准确的位置。

阅读文章,了解为什么FusedLocationProviderClient是最好的解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38578575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档