【问题标题】:offline GTFS connection from A to B从 A 到 B 的离线 GTFS 连接
【发布时间】:2018-02-21 15:44:20
【问题描述】:

我正在进行的项目涉及移动应用中的静态离线 GTFS 数据。所有 GTFS 数据都可在领域对象(或 SQLite,如果需要)中获得。

现在,我想建立从 A 到 B 的所有火车或公共汽车连接(在某个出发时间后开始)。

如何查询 GTFS 数据以获得从 A 到 B 的连接???

我意识到要从 A 出发的所有行程。 我意识到要获取那次旅行中的所有车站名称,包括时间。

但我发现很难获取两个位置 A 和 B 之间的连接信息。我必须设置哪些 SQL 查询才能获取该信息?

任何帮助表示赞赏!

【问题讨论】:

    标签: sql sqlite gtfs


    【解决方案1】:

    如果你只是想动态计算静态枢纽之间的最短旅行路线,在离线应用中,如下图确定,可以使用以下公式:

    (Source)


    这是伪代码:

     1  function Dijkstra(Graph, source):
     2
     3      create vertex set Q
     4
     5      for each vertex v in Graph:             // Initialization
     6          dist[v] ← INFINITY                  // Unknown distance from source to v
     7          prev[v] ← UNDEFINED                 // Previous node in optimal path from source
     8          add v to Q                          // All nodes initially in Q (unvisited nodes)
     9
    10      dist[source] ← 0                        // Distance from source to source
    11      
    12      while Q is not empty:
    13          u ← vertex in Q with min dist[u]    // Node with the least distance
    14                                                      // will be selected first
    15          remove u from Q 
    16          
    17          for each neighbor v of u:           // where v is still in Q.
    18              alt ← dist[u] + length(u, v)
    19              if alt < dist[v]:               // A shorter path to v has been found
    20                  dist[v] ← alt 
    21                  prev[v] ← u 
    22
    23      return dist[], prev[]
    

    (Source)


    好吧,我承认到目前为止我的回答有点滑稽......

    我怀疑你没有意识到按照你的要求去做是多么复杂,尤其是在离线环境中。谷歌和微软等公司已经花费数百万美元与庞大的数据科学家团队进行研究。

    如果这是您认真对待的事情,我建议您从 10×10 网格开始,并在开始时研究从 “A 点 → B 点” 获取的逻辑在随机位置添加障碍(模拟道路开始和结束)。最近,我很惊讶我回答的 看似简单但有些相关 Stack Overflow“管道尺寸转换”question 变得如此复杂。

    如果您没有“离线”条件,我建议您考虑为Google Web Services Directions API 获取 [免费] API 密钥。基本上,您告诉它 A 点和 B 点在哪里,它会通过公交或其他方法为您提供详细的路线信息。

    Google 的众多 API 中另一个可能有用的 API 是 Snap to Roads API,它可以将部分或充满错误的路径转换为可驱动的路径。

    Route LogicShortest Path Logic 研究实际上是 非常有趣的东西,并且有一些很棒的资源可以了解相关理论(见下文),包括 video from Google 解释他们是如何做到的。

    ...但不幸的是,这不是通过简单的 SQL 查询 就能完成的。


    实际资源:


    ...还有一些轻读:

    【讨论】:

    • ...奇怪,当我回答这个问题时,我实际上以为这个问题在Stack Exchange GIS 页面上已经结束了,并带有gtfs 标签,这不知怎的让它看起来更多一个问题比我解释的不切实际......尽管如此,@iKK 我希望我没有被认为是一个混蛋——据我所知,我可能完全误解了你的问题。我确实认为这是一个有趣的研究领域……但也该死的复杂!
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多