Android GPS-我看到了什么。?

Android GPS-我看到了什么。?,android,gps,geolocation,Android,Gps,Geolocation,我有一个android应用程序,它利用GPS进行跟踪。这个应用程序运行在安装在驾驶室中的android设备上,这样我就可以跟踪驾驶室了。我已在应用程序上启用日志记录。最近我在追踪出租车时发现了一个奇怪的案例。有一次,GPS给出了一个位置,80秒后,它给出了一个距离第一个位置几公里的位置。令人惊讶的是,在这两种情况下,精度都是20(米),这是我考虑跟踪的位置的检查。请查找我从设备收集的日志 ----some logs 26 Dec,05:55:01.645 PM; GPS Fix state =

我有一个android应用程序,它利用GPS进行跟踪。这个应用程序运行在安装在驾驶室中的android设备上,这样我就可以跟踪驾驶室了。我已在应用程序上启用日志记录。最近我在追踪出租车时发现了一个奇怪的案例。有一次,GPS给出了一个位置,80秒后,它给出了一个距离第一个位置几公里的位置。令人惊讶的是,在这两种情况下,精度都是20(米),这是我考虑跟踪的位置的检查。请查找我从设备收集的日志

----some logs
26 Dec,05:55:01.645 PM; GPS Fix state = true; NetworkLocation = Fri Dec 26 17:54:02 GMT+05:30 2014 17.805544,83.352301 Accuracy 3139.0; GPS Location = Fri Dec 26 17:54:58 GMT+05:30 2014 17.805017,83.35345 Accuracy 8.0;
----some logs
26 Dec,05:56:34.705 PM; GPS Fix state = true; NetworkLocation = Fri Dec 26 17:55:35 GMT+05:30 2014 17.81825,83.352313 Accuracy 3048.0; GPS Location = Fri Dec 26 17:56:09 GMT+05:30 2014 16.570113,82.055219 Accuracy 14.0;
----some logs
如你所见,网络仍然指向初始位置周围的某个位置,而GPS指向的位置距离第一个位置较远,并且仍然具有14的精度

android位置类的javadoc说-

 * We define accuracy as the radius of 68% confidence. In other
 * words, if you draw a circle centered at this location's
 * latitude and longitude, and with a radius equal to the accuracy,
 * then there is a 68% probability that the true location is inside
 * the circle.
这是否意味着,我在第二次跟踪中得到的准确度下降了32%,可能是错误的。?我不知道是否有可靠的方法来决定是否考虑GPS定位,而不是检查精度。 提前谢谢

编辑:忘记提及GPS定位在40分钟后回到驾驶室位置。你可以在这里看到

26 Dec,06:35:21.851 PM; GPS Fix state = true; NetworkLocation = Fri Dec 26 18:35:20 GMT+05:30 2014 17.800334,83.352941 Accuracy 2887.0 GPS Location = Fri Dec 26 18:35:22 GMT+05:30 2014 17.799875,83.351936 Accuracy 14.0;

更新:今天我查看了运行此应用程序的所有几个设备的日志,发现多个设备的GPS位置错误,精度值很高。所有设备都是同一品牌的,并且使用同一网络供应商的sim卡。

您的情况很奇怪,GPS通常不会出现这种情况。 它可能跳30米,有时跳50米。 或者你遇到了一个极其罕见的案例,在成千上万的设备上, 或者你正在使用的GPS芯片中有一个错误

或者最有可能的情况是,您正在使用其他位置源,例如已知精度不超过1km的“细胞塔位置”。确保您仅使用GPS提供商

您的“NetworkLocation”日志输出让我怀疑您是否仅使用GPS。 如果您100%确定该位置是由GPS提供的(它必须具有有效的速度和有效的路线,那么它是由GPS提供的,或者您能够读出哪个提供商提供了该位置(GPS提供商或网络提供商),然后进一步阅读:

有一次,我看到了一个300公里的跳跃,这要么是由于GPS卫星的缺陷,要么是由于GPS芯片的缺陷

你能做的就是过滤掉那些只有在不现实的高速下才能实现的运动

在你的例子中是“几公里”,假设是3公里。 也就是说,80s时为3000m=37m/s=135km/h,这是公路上车辆的实际速度。 为了进行适当的过滤,你需要每秒检查一次位置,并寻找不现实的跳跃

除此之外,全球定位系统(GPS)也无法保证精度。所有的精度都是估计值。
如果水平精度估计为14米,您永远无法确定它距离实际位置是50米还是2米。

出租车司机黑客攻击它是为了掩盖他/她的个人购物从莫里森。这是一辆哈克尼马车:)谢谢您的回复。谷歌地图在这两个地点之间的距离是244KM,这是不现实的。正如您在回复中提到的,如果计算的速度(如您所述,使用上一个位置和当前位置之间的距离)超过200公里/小时,我已经在我的代码中进行了检查,以忽略某个位置。但是,由于设备有时可能无法获得更长时间的修复,如果前一个位置比前一个位置早70秒以上,我会直接考虑新位置。-这正是本例中出现问题的原因。!这两个位置肯定是由GPS提供商提供的(每次我收集位置并记录两者提供的位置,如您在日志中所看到的)。智能手机(当然是ios)最初也可能提供前一天的旧位置。因此,请始终检查位置的时间戳,使其与系统时间的偏差不超过几秒钟。设备在所有持续时间内都处于运行状态,并且在日志时间戳的过去5小时内没有确实重新启动。所以,我不认为这与陈旧的位置数据有关。可能是一个坏设备,似乎错误是基于硬件的。