我正在建立一个基于位置的应用程序,我想避开这种位置:“特拉维夫,特拉维夫,以色列”,这是非常不准确的。
在使用位置之前,我使用以下条件:
if(!(this.location == null || this.location.getAccuracy() > 700))
// use the location
但我一直在这个地方(特拉维夫,特拉维夫,以色列),特拉维夫不小到可以通过这个条件。
我错过了什么?怎么了?
答案 0 :(得分:3)
您尚未指定涉及的几个参数,但我会尝试一下。
确切的Location
参数取决于特定Location
的来源,即如何获取和使用哪些地理定位源。例如:
Location
将具有可靠的accuracy
值。您从位置服务获得的准确度表示距离获取位置时设备可能位于报告位置的距离(以米为单位)。
所以(如果我理解你的问题),我认为你使用低精度的方法获得当前的设备位置。您只需更准确地切换到Location
来源。
另请注意,位置服务使用的位置获取方法(即用于查找上述位置的服务)实际上可能无法为返回的{{1>提供准确性 }}。要理解我的意思,考虑以下场景及其两个结果 - 请注意,它们都来自基于Wi-Fi网络的相同定位方法:
您必须通过测试是否准确无误来做好准备。您可以通过发出Location
来执行此操作。如果返回的值为Location.hasAccuracy()
,则无法调用false
(实际上您可以,但请注意 - 它会返回Location.getAccuracy()
! )。所以,你的情况应该更像:
0