我正在使用Postgres / PostGIS / pgRouting为我正在进行的分析准备数据集。我需要准备的数据集中的一个字段是100,000个家庭的数据集(点数据)与数十个活动中心的数据集(也是点数据)之间的最短道路距离。我已经创建了一个节点和网络数据集来准备这个。我还使用包含最近节点的id值的列更新了我的家庭和activity_centre数据集。
到目前为止,我已经能够使用driving_distance()函数来计算从中央商务区(CBD)到每个家庭的道路距离,但我希望在一次运行中为所有中心做到这一点而不必进行每个中心的单独距离数据集。
更重要的是,我最终必须对每个家庭和最近的火车站之间的道路距离做同样的事情。
有解决方法吗?
非常感谢,
罗
答案 0 :(得分:1)
我不知道我的问题是否正确。如果它像
然后你可以尝试这样的方法:
示例:如果P位于第7位且您的终点位于第12位, 转到数组元素12,读取其值array_val [12] = 10, 现在有10,比如array_val [10] = 7,那么你的路径是7-10-12。
如果要使用pgrouting,可能需要修改boost_wrapper.cpp函数boost_dijkstra以返回完整的predecessor_map而不是仅返回一条最短路径(将其复制到path_vect)。这将使pgrouting dijkstra始终返回最短路径树,而不是仅返回最短路径。我还没有对此进行测试(请注意,pgrouting内部会进行索引重新排序,但此方法应该会返回原始索引ID)。