【问题标题】:route planning with walking sections带步行部分的路线规划
【发布时间】:2015-03-13 21:45:03
【问题描述】:
我正在开发一个应用程序,它可以显示使用公共交通方法(目前只有公共汽车)的最短路线。它应该包括人们可以步行一段距离到达下一站而不是乘坐另一辆公共汽车(如果它更短的话)的部分。
地图的数据结构应该是什么?我想到了带有公共汽车站节点的图形结构。以及以距离为权重的顶点。
即使我使用算法 (dijkstra) 找到了最短路径,如何在逻辑中实现步行部分。
【问题讨论】:
标签:
google-maps
graph
routes
neo4j
dijkstra
【解决方案1】:
如果没有很多额外的信息,很难给你一个很好的答案来回答这个问题,但让我来谈谈一些基础知识。这应该足以让您继续前进,但是您将需要做额外的工作来开发您的解决方案。
- 一般而言,您的数据结构将类似于表示目的地或航路点的节点(如公共汽车站或地址)。您的关系将成为具有相关成本的运输方式。例如,您可以通过步行或公共汽车从点/节点 A 到点/节点 B。这是两种不同的关系,在时间和金钱方面具有不同的“成本”。
- 通常,您需要使用“加权最短路径”算法来找到从 A 点到 B 点的最佳路径。Neo4j 为您提供了最短路径功能,但在您的情况下,您需要分配权重到您的关系,然后计算最短路径不是基于通过图表的“跳数”,而是基于一些总体成本指标(时间、金钱等)。
Ian Robinson wrote a great post on how to do weighted shortest paths in neo4j。所以你应该按照这样的模板作为起点。
不过,您有一堆设计问题要回答。您想要时间、金钱、精力或某种组合方面的最短路径吗?该问题的答案将影响您的图形设计和查询策略。