繁体   English   中英

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

[英]How to calculate distance and time, using pgRouting

我正在尝试使用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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM