2017-10-06 118 views
-1

我试图实现获取当前位置。我已经使用这两个代码。在android中获取当前精确位置的最佳方式是什么?

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

定位精度2000米

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

位置acccuracy为100〜200米。

我觉得反应的位置是最准确的。有没有最好的方法来获得准确的当前位置。和任何人可以解释为什么谷歌代码不显示确切的位置?

+0

嗨@Umakant使用GogleApiClient,它会给出准确的位置 – Shanmugam

回答

2

您可以创建LocationRequest ans setPriorityLocationRequest.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

+0

感谢您的答复哥们,您的意思是使用位置更新概念对吗?或者我们可以将此设置添加到getLastKnownLocation? –

+0

您可以使用GoogleApiClient添加locationRequest。你可以参考我在回答中提到的链接。您将会了解FusedLocationAPI的全部概念@UmakantAngadi – Kuls

0

他们两人都是正确的,但出于我的经验,以及反应更为准确,但在一般情况下,它们提供更高的精确度,当你给他们时间来解决。这意味着如果您实例化LocationProvider并立即尝试查询它可能无法提供最准确的位置的位置,我宁愿建议给用户一个刷新按钮,以查看该位置现在是否比前一个位置更准确。 WhatsApp位置发件人就是一个很好的例子,用户可以刷新当前位置以找到更准确的坐标。

+0

感谢您的回复。你有什么想法为什么反应式代码比谷歌代码更好。 –

相关问题