pgrouting - 选择一种主导特定类型道路的算法

时间:2017-05-22 22:01:29

标签: algorithm postgis shortest-path pgrouting

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

要构建我使用osm2pgrouting的数据。 我想首先关注问题(a)。

  1. 是否有算法可以定义道路类型的首选项(表格方式为class_id列class_id,表示道路类型或表osm_way_types)?
  2. 如果不是我应该如何调整我的数据库?知道我使用了osm2pgrouting - >有表public.osm_way_classes有max_speed,但它似乎是调整它的糟糕选择。我想不管它。我在其他表格中找不到任何有用的东西。有什么想法吗?
  3. 问题(b)(较少重要)是确定搜索路径的长度是否小于例如10km。如果没有那么路径应该访问指定的中间点(或点)之一 我不认为pgrouting中存在算法,这些算法可以使这些算法停止并且#34;停止" (源和目标之间的中间点)。我认为这个问题(b)应该通过搜索从point1到point2然后从p2到p3等的路径来解决,但我还不知道如何确定这些点。

1 个答案:

答案 0 :(得分:1)

图论一般基于边权重来求解最短路径。 IE:在图中从A到B,它将选择那些最小化路径边缘权重之和的边。所以在pgRouting中你选择权重作为最短路径长度的边长,或者可以计算权重作为遍历边缘时间=时间长度/速度的时间,但是对于你的问题,你可以用自己的权重制作自己的权重。方程如长度*偏好,其中偏好是某些分数,其中更小是更优选的。显然,您将根据此因子以及边缘ID获得成本,并且使用边缘ID的简单连接将使您获得原始表格的bcak。该策略适用于我们的大多数算法。