【问题标题】:How to make a GPS transportation app?如何制作一个 GPS 交通应用程序?
【发布时间】:2012-12-26 01:45:54
【问题描述】:

我住在克罗地亚的斯普利特,一家城市公交公司最近购买了一款新软件,它的作用是:如果我是一名乘客,并且正在公交车站等车,那里有一个巨大的监视器我可以在上面看到公共汽车代码以及他到达我的车站所需的时间。问题是,在拥有该软件的两年时间里,我从未见过它的到达时间是非常准确的。我知道 GPS 数据可能不准确,但是这......这让我非常沮丧,我决定尝试为我的大学 CS 期末考试写一个类似的应用程序。问题是我在过去几天广泛搜索了网络,但我找不到好的起点。所以我的问题是:你有没有参与过这样的项目,如果有的话,你能给我一些指导,无论是教程还是有关该主题的书籍?我感谢任何形式的输入。 如果我在问题本身方面犯了错误,请随时关闭它。 谢谢!

【问题讨论】:

  • 我怀疑导致问题的 GPS 位置的准确性,更多的是从 A 到 B 的时间因交通等而变化很大。
  • @Vicky 是的,我考虑到了这一点,我同意。但不可能一直如此。我想基于 Open Street Map 进行某种模拟,并且可能对其进行编程以考虑到交通信号灯的一分钟延迟......?
  • 不过,您可以在每次经过停靠点时更正估计的 TOA,所以它不应该太不准确。
  • @Nebbs,我同意 Vicky 的观点:GPS 通常精确到几百英尺以内,这不足以导致大错误。预测运输时间更具挑战性。更微妙但更现实的错误来源是,如果从公共汽车或从服务器到车站的 GPS 数据传输一直延迟但下落不明。
  • @Richard 是的,我也同意,服务器和公共汽车之间可能存在某种滞后。我今天尝试在工作中制作一个小型临时模型,我猜时间将是这里的关键因素,就像你说的那样。此外,我将不得不向我的老师咨询卡尔曼和马尔可夫。 :)

标签: algorithm gps transport


【解决方案1】:

你可能会有:

  • 车辆对象,包含每个车辆的位置、分配的路线、路线上的行驶方向、下一个预定停靠点、上一个预定停靠点、上一个预定停靠点的到达时间
  • 路线数组,其中包含停靠点列表和保存每条路线停靠点之间历史过境时间的数据结构

现在,将车辆位置更新推送到车辆对象。

当您想要更新车站的显示时,查找经过该车站的所有路线,并为每条路线显示该路线上下一辆车的预计到达时间。

预计到达时间结构是其中的核心。通过假设停靠点之间的距离和平均行驶速度来播种。

现在,每次车辆到达停靠点时,计算从最后一站到达该站点所需的实时时间,并使用它来更新按半小时增量(或您有什么)划分的平均运输时间,您也可以按季节和/或星期几分类。分箱的目的是隐含地考虑按一天中的时间、一周中的一天和/或季节变化的交通拥堵。假设其他条件均质,您最终会收敛到对每个车站之间的通行时间的合理估计。

您可能会发现使用Kalman filter 很有用。

如果您愿意调查,更远的车站之间的行程时间估计可能比相邻车站之间的行程时间更准确。高阶 Markov chains 也可能有助于描述运输时间的基本统计数据。

只是想法。

【讨论】:

  • 哇非常感谢您提供如此好的和快速的答案!我没有考虑到夏天的交通拥堵,例如游客在城里的时候。谢谢!
  • 不用担心,@Nebbs。您可能还会发现,通过平均您的车辆在更远(而不是相邻)车站之间的行程,您可以获得更好的预测成功率。您还可以查看更高阶的Markov chains。可能需要进行一些实验才能使其正确。
  • @AlexWien,卡尔曼滤波器将用于在特定条件下更新与车站间运输时间相对应的箱。这假设某种“真实”的平均运输时间以及交通状况形式的噪音,这些噪音在特定箱的平均值附近变化。
  • @Nebbs,如果这回答了您的问题或者对您最有帮助,您应该考虑将其标记为已接受的答案。
  • @Richard 很抱歉没有早点这样做。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多