为了工作,我的应用程序需要一个位置API。我打算使用Mapbox平台来定制它的设计(就我而言,Google并不提供这种程度的定制)。
文档指出,在构建位置应用程序时,我们应该使用Google:
Google服务位置API比android.location (android.location)更受欢迎,它是向应用程序添加位置感知的一种方式。如果您目前正在使用Android框架位置API,则强烈鼓励您尽快切换到Google服务位置API。
我的问题是:当提到GPS精度时,Google是最有效的API吗?或者我应该使用LocationManager和LocationListener的方式来完成它呢?
我需要准确。我应该用哪一种?谢谢。
发布于 2016-08-01 21:23:48
在android系统中,还有三种类型的位置:
因此,根据我的编码经验,我知道如果您使用:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener());
您将获得精确到14+小数位。
但是如果你像这样使用它们的融合:
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, my_google_listener);
您将获得6至7位小数点以下的精度。试试!参考文献
但是这里要注意的是,GPS提供者需要时间来获取位置,而Google位置则要快得多,因为它可以从API调用中获取数据到google服务器数据库。
GPS离线工作,而谷歌提供商通过移动或wifi数据获取位置。
发布于 2016-07-28 12:01:09
使用FusedLocationProviderApi并将LocationRequest优先级设置为准确度
这是最新的API,用于精确的位置获取和谷歌建议使用同样的。
检查准确性细节这里。
基本上,Google服务API具有通过融合GPS+NetworkProvider+passive提供商获得精确定位的智能。
发布于 2017-11-23 08:23:32
FusedLocationProviderApi is deprecated.You应该使用FusedLocationProviderClient,您应该添加ACCESS_FINE_LOCATION
权限,而不是ACCESS_COARSE_LOCATION
来获得最准确的位置。
阅读这文章,了解为什么FusedLocationProviderClient
是最好的解决方案。
https://stackoverflow.com/questions/38578575
复制相似问题