Postgresql 如何使用pgRouting计算距离和时间

Postgresql 如何使用pgRouting计算距离和时间,postgresql,postgis,pgrouting,Postgresql,Postgis,Pgrouting,我试图用pgr_dijkstra在pgRouting中获得路由的总时间和距离,但我基本上不知道如何实现它。到目前为止,我设法算出了pgr_dijkstra的回报是以成本为单位的,并对其进行了总结。我假设计算距离和时间实际上是在路线中的每个区段完成的。有人举过这样的例子吗 SELECT SUM(cost) FROM (SELECT cost FROM pgr_dijkstra('SELECT u_gid as id,

我试图用pgr_dijkstra在pgRouting中获得路由的总时间和距离,但我基本上不知道如何实现它。到目前为止,我设法算出了pgr_dijkstra的回报是以成本为单位的,并对其进行了总结。我假设计算距离和时间实际上是在路线中的每个区段完成的。有人举过这样的例子吗

SELECT SUM(cost) 
  FROM (SELECT cost 
         FROM pgr_dijkstra('SELECT u_gid as id, 
                                   u_source AS source, 
                                   u_target AS target, 
                                   cost AS cost, 
                                   reverse_cost 
                              FROM ways', 78771, 26263, true, true)) AS r_cost;

上面的陈述将给我所有单位成本的总和…

成本是时间或距离,或者您用于成本值的任何东西。如果每条边上的成本是边的长度,则成本是距离。但是,如果将成本设置为边的遍历时间,则成本就是时间。如果按边的长度计算成本,并具有与每条边关联的平均速度,则可以将结果合并回边表,以便计算时间

SELECT cost as distance, cost/speed as time 
         FROM pgr_dijkstra('SELECT u_gid as id, 
                                   u_source AS source, 
                                   u_target AS target, 
                                   cost AS cost, 
                                   reverse_cost 
                              FROM ways', 78771, 26263, true, true)) a,
         ways b,
  where a.id=b.u_gid;

成本是指时间、距离或成本值所用的任何东西。如果每条边上的成本是边的长度,则成本是距离。但是,如果将成本设置为边的遍历时间,则成本就是时间。如果按边的长度计算成本,并具有与每条边关联的平均速度,则可以将结果合并回边表,以便计算时间

SELECT cost as distance, cost/speed as time 
         FROM pgr_dijkstra('SELECT u_gid as id, 
                                   u_source AS source, 
                                   u_target AS target, 
                                   cost AS cost, 
                                   reverse_cost 
                              FROM ways', 78771, 26263, true, true)) a,
         ways b,
  where a.id=b.u_gid;