使用 pgr_drivingDistance 获取最快路径的距离

Get distance of fastest path with pgr_drivingDistance

我在 PostgreSQL 中使用 OSM2PO 创建了一个基于 OSM 的路由网络,扩展名为 pgrouting。我有一个列 km(以公里为单位的距离),一个列 cost(行车时间)和 max_speed。我尝试使用 pgr_drivingDistance 列(以公里为单位的距离)使用函数 pgr_drivingDistance 创建一个集水区。这将计算出具有最短路径的集水区,这在大多数情况下不是汽车的实际距离。因此我想使用 cost 根据最短的行驶时间来计算集水区。但在结果中,我需要 而不是时间 的单位。非常感谢任何提示。

简短版本:我需要一个以公里为单位的集水区,以获得最快(最短时间)的路线!

这是 pgr_drivingDistance 的标准代码,最短距离为公里:

SELECT *
   FROM routing_vertices_pgr
   JOIN(
SELECT * FROM pgr_drivingDistance('
SELECT id,
     source,
     target,
     km as cost
    FROM routing',
1, 100, false)) AS route ON routing_vertices_pgr.id = route.node ;

如果您拥有要素类型(高速公路、主要路段),则创建一个包含 max_speed 的列并将此 max_speed 划分为距离将为您提供行驶该路段所需的时间.可以选择这个时间作为成本,给出最短的行驶距离。

你不能做这样的事情......在驾驶距离中你决定你的成本是多少(时间或距离或其他)并且功能正在处理这个成本。成本只是一个...我认为解决方案之一可能是计算距离,但使用 clazz 或 flags 字段从边缘排除 'not realistic for cars'。您将在您的 osm2po 配置文件中找到这些字段的描述。