【问题标题】:pgrouting - Choosing an algorithm with a predominance for a specific type of roadpgrouting - 为特定类型的道路选择具有优势的算法
【发布时间】:2017-10-22 16:42:51
【问题描述】:

我想使用 pgrouting 的一种算法来找到两点之间的(最短)路径:(a) 特定类型道路的优势和 (b) 中间点。

为了构建数据,我使用了 osm2pgrouting。 我想首先关注问题(a)。

  1. 是否有一种算法可以定义我对道路类型的偏好(在表示道路类型的表中的 class_id 列 class_id 中或在表 osm_way_types 中)?
  2. 如果不是,我应该如何调整我的数据库?知道我使用了 osm2pgrouting --> 有表 public.osm_way_classes 有 max_speed 但它似乎是调整它的糟糕选择。我想不管它。我在其他表中并没有真正找到任何有用的东西。有什么想法吗?

问题 (b)(不太重要)是确定搜索路径的长度是否小于例如 10 公里。如果没有,则路径应访问指定的中间点(或多个点)之一。
我认为 pgrouting 中没有算法可以考虑这些“停止”(源和目标之间的中间点)。我认为这个问题(b)应该通过搜索从point1到point2然后从p2到p3等的路径来解决,但我还不知道如何确定这些点。

【问题讨论】:

    标签: algorithm postgis shortest-path pgrouting


    【解决方案1】:

    图论通常基于边权重解决最短路径。 IE:为了在图中从 A 到 B,它将选择那些使路径中边的权重总和最小化的边。因此,在 pgRouting 中,您选择权重作为最短路径长度的边长,或者可以将权重计算为遍历边的时间 = 长度/速度,最短时间,但是对于您的问题,您可以使用像长度*偏好这样的等式,其中偏好是一些分数,较小的部分更受欢迎。显然,您将根据这个因素以及边缘 id 获得成本,并且使用边缘 id 的简单连接将使您回到原始表。这种策略应该适用于我们的大多数算法。

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2012-09-18
      相关资源
      最近更新 更多