在android中获取当前准确位置的最佳方法是啥?

Posted

技术标签:

【中文标题】在android中获取当前准确位置的最佳方法是啥?【英文标题】:What is best way to get current accurate location in android?在android中获取当前准确位置的最佳方法是什么? 【发布时间】:2018-03-17 20:18:46 【问题描述】:

我正在尝试实现获取当前位置。这两个代码我都用过。

 mFusedLocationClient =
 LocationServices.getFusedLocationProviderClient(this);
 mFusedLocationClient.getLastLocation()...

定位精度为2000米

ReactiveLocationProvider locationProvider = new  ReactiveLocationProvider(context);
locationProvider.getLastKnownLocation()...

定位精度为 100 到 200 米。

我觉得反应式定位是最准确的。有没有最好的方法来获得准确的当前位置。谁能解释一下为什么谷歌代码没有显示确切的位置?

【问题讨论】:

嗨 @Umakant 使用 GogleApiClient ,这将提供准确的位置 【参考方案1】:

您可以使用LocationRequest.PRIORITY_HIGH_ACCURACY 创建LocationRequestsetPriority,它的准确性很高。虽然精度取决于 GPS,因为有时我会得到 10 米的精度。

 protected void createLocationRequest() 
        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(INTERVAL);
        mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    

想了解更多可以参考Fused location provider

【讨论】:

谢谢哥们的回复,你的意思是使用位置更新的概念吧?或者我们可以将此设置添加到 getLastKnownLocation? 您可以使用 GoogleApiClient 添加 locationRequest。您可以参考我在回答中提到的链接。您将了解 FusedLocationAPI @UmakantAngadi 的整个概念【参考方案2】:

它们都是正确的,尽管根据我的经验,Reactive 也更准确,但总的来说,当你给他们时间安顿下来时,它们会提供更高的准确度。这意味着如果您实例化 LocationProvider 并立即尝试查询它可能无法提供最准确位置的位置,我宁愿建议给用户一个刷新按钮,以查看现在的位置是否比以前的位置更准确。 WhatsApp位置发送器就是一个很好的例子,用户可以刷新当前位置以找到更准确的坐标。

【讨论】:

感谢您的回复。你知道为什么响应式代码比谷歌代码更好吗?

以上是关于在android中获取当前准确位置的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

获取站点访问者位置的最佳方法是啥? [关闭]

获取用户在Android中的位置的好方法

Android获取当前位置的最佳方式[重复]

在 Android 上获取用户当前位置的最简单、最可靠的方法是啥?

获得快速准确位置的最佳方式[关闭]

确定当前 PowerShell 脚本位置的最佳方法是啥?