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

时间:2016-12-03 00:45:59

标签: postgresql openstreetmap pgrouting

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

简短版本:我需要一个最快(最短时间)路线的距离以千米为单位的集水区!

以下是以km为单位的最短距离的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 ;

2 个答案:

答案 0 :(得分:0)

如果您具有要素类型(高速公路,主要路径),则使用max_speed创建一个列并将此max_speed除以距离将为您提供行驶路段所需的时间。可以选择此时间作为成本,以获得最短的行驶距离。

答案 1 :(得分:0)

你不能做这样的事情......在驾驶距离你决定你的成本(时间或距离或其他),功能正在处理这个成本。成本只有一个...我认为其中一个解决方案可能是计算距离,但是从边缘排除这对于使用clazz或flags字段的汽车来说是不现实的。你可以在osm2po配置文件中找到这个字段的描述。