Android最准确的Location API

And*_*Dev 13 android location

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

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

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

我的问题是:在GPS准确性方面,Google Play API是最有效的API吗?或者我应该使用LocationManager和LocationListener的方式吗?

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

Dha*_*hah 11

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

  1. GPS_PROVIDER
  2. NETWORK_PROVIDER
  3. PASSIVE_PROVIDER

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

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener());
Run Code Online (Sandbox Code Playgroud)

你将获得精确到14位以上的小数位数.

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

LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, my_google_listener);
Run Code Online (Sandbox Code Playgroud)

您将获得精确到小数点后6到7位.试试吧 !!!参考

但请注意,GPS提供商需要时间来获取位置,而谷歌位置要快得多,因为它会从API调用到谷歌服务器数据库.

当谷歌提供商通过移动或wifi数据获取位置时,GPS可脱机工作.

  • 但是 - 小数位数是否与实际位置精度相关?我的猜测是否定的。 (3认同)
  • 没有更精确的坐标并不意味着更准确,它只是意味着更多的小数位。小数位数应根据准确性进行调整,但是我在这里看不到任何事实表明确实如此。 (2认同)

Nit*_*der 5

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

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

在此查看准确度详情.

基本上,Google Play服务API具有通过融合GPS + NetworkProvider +被动提供商来获取准确位置的智能.