【问题标题】:GPS - What am I seeing.?GPS - 我看到了什么。?
【发布时间】:2015-03-05 10:38:56
【问题描述】:

我有一个使用 GPS 进行跟踪的 android 应用程序。该应用程序在安装在驾驶室中的安卓设备中运行,以便我可以跟踪驾驶室。我在应用程序上启用了日志记录。最近我在跟踪出租车时发现了一个奇怪的案例。有一次,GPS 给出了一个位置,80 秒后它给出了一个距离第一个位置几公里的位置。令人惊讶的是,在这两种情况下,准确度都

----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的Location类的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 卡。

【问题讨论】:

  • 出租车司机破解了它,以掩盖从莫里森那里买他/她的个人购物。
  • 这是一辆普通的马车:)

标签: android gps geolocation


【解决方案1】:

您的情况很奇怪,GPS 通常不会发生这种情况。 它可能跳30m,有时50m。 要么你遇到了一个极其罕见的案例,查看了数千台设备, 或者您使用的 GPS 芯片存在错误。

或者很可能您正在使用其他位置源,例如 Cell-Tower 位置,已知其精度不超过 1 公里。确保您仅使用 GPS 提供程序。

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

有一次我看到了 300 公里的跳跃,这可能是由缺陷 GPS 卫星或 GPS 芯片实施中的错误引起的。

您可以做的是过滤掉只有在不切实际的高车速下才能实现的运动。

在您的情况下,它是“几公里”,假设它是 3。 即 80 秒内 3000 米 = 37 米/秒 = 135 公里/小时,这是高速公路上车辆的现实速度。 为了进行适当的过滤,您需要每秒检查一次位置,并寻找不切实际的跳跃。

此外,GPS 无法保证。所有准确度均为估计值。 如果估计水平精度为 14m,则您永远无法确定它距实际位置是 50m 还是 2m。

【讨论】:

  • 感谢您的回复。这两个位置之间的谷歌地图距离是 244 公里,这是不现实的。正如您在回复中提到的那样,如果计算的速度(如您提到的 - 使用先前和当前位置之间的距离)超过 200 公里/小时,我已经检查了我的代码以忽略一个位置。但是因为设备可能不会有时会得到更长的修复时间,如果以前的位置超过 70 秒,我会直接考虑新位置。-在这种情况下,这正是导致问题的原因。!
  • 这两个位置肯定是由 GPS 提供商提供的(每次我收集位置并记录两者提供的位置,您可以在日志中看到)。
  • 智能手机(当然是 ios)最初也可能会提供前一天的旧位置。因此,请始终检查该位置的时间戳,以免与系统时间的偏差超过几秒。
  • 设备一直处于开启状态,并且在日志时间戳的过去 5 小时内确定没有重新启动。所以,我认为这与陈旧的位置数据无关。
  • 可能是坏设备,错误似乎是基于硬件的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多