我正在尝试获取当前位置。我已经使用了这两个代码。
mFusedLocationClient =
LocationServices.getFusedLocationProviderClient(this);
mFusedLocationClient.getLastLocation()...
位置精度为2000米
和
ReactiveLocationProvider locationProvider = new ReactiveLocationProvider(context);
locationProvider.getLastKnownLocation()...
位置准确度为100至200米。
我觉得反应位置最准确。有没有最好的方法来获得准确的当前位置。任何人都可以解释为什么谷歌代码没有显示确切的位置?
答案 0 :(得分:1)
您可以使用LocationRequest
创建setPriority
ans LocationRequest.PRIORITY_HIGH_ACCURACY
,并且准确度很高。虽然准确度取决于GPS,但有时我会得到10米的准确度。
protected void createLocationRequest() {
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
要了解更多信息,请参阅Fused location provider
答案 1 :(得分:0)
它们都是正确的,虽然我的经验也是如此,Reactive更准确,但总的来说,当你给他们时间来解决时,它们提供了更多的准确性。这意味着如果你实例化LocationProvider并立即尝试查询它可能无法提供最准确位置的位置,我宁愿建议给用户一个刷新按钮,看看现在的位置是否比前一个更准确。 WhatsApp位置发送者就是一个很好的例子,用户可以刷新当前位置以找到更准确的坐标。