我有一个非常复杂的问题,希望有人可以帮助我
我正在构建用于在某些特定预定义点跟踪用户移动的Android应用程序,并且我想报告用户到达和离开这些点的过程。
问题是我使用distanceTo方法来获取当前用户位置和位置之间的距离来自位置服务,以便能够知道用户是否到达或离开
但准确性在这里是一个大问题,有时它是" 10"还有一些时候它是" 60"基于我的gps服务的最佳提供商,因此用户报告从同一地点到达和离开多次。
任何人都可以帮助我吗?
答案 0 :(得分:2)
使用location.GetAccuracy()是一个很好的方法。您可以过滤掉不符合要求的gps数据。请注意,一直达到10米的精度是不太可能的,根据我的经验,10米是你能得到的最好的。这样做:
@Override
public void onLocationChanged(Location location) {
if (location != null) {
// discard any location greater than 20 meters
if (location.getAccuracy() < 20.0f) {
// use your location data here
}
}
}
您可以在我的开源Gps Tracker项目中看到完整的工作示例: