【问题标题】:How to calculate distance and time, using pgRouting如何使用 pgRouting 计算距离和时间
【发布时间】:2016-08-24 15:38:24
【问题描述】:

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

上面的语句会给我所有单位成本的总和......

【问题讨论】:

    标签: postgresql postgis pgrouting


    【解决方案1】:

    成本是时间或距离或您用于成本值的任何内容。如果每条边的成本是边的长度,那么成本就是距离。但是,如果您将成本设置为边缘的遍历时间,那么成本就是时间。如果您将成本计算为边的长度,并具有与每条边相关的平均速度,那么您可以将结果连接回边表,以计算时间。

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多