pgr_trsp - 在不考虑成本的情况下应用限制

时间:2015-11-13 16:18:17

标签: postgresql postgis pgrouting

我试图解决一个常见的问题,即铁路路线,从而强制执行几个转弯限制,例如:"不能通过NODE c从#EDGE A转到EDGE B"

火车不能做急转弯和其他东西,所以我现在拥有的是源和目标边缘的列表,我不希望在我的最短路径结果中出现。问题在于pgr_trsp现在的工作方式,我们有加权限制,这是不理想的,因为这些转弯永远不会发生,不是基于它们的重量,而是基于一个简单的事实,即火车不可能像这样操纵,正常情况和速度。

我的问题是,是否有可能忽略重量,只是检查是否允许转弯?我是否遗漏了文档或指定该文档的任何属性?

pgr_trsp(
    sql text,
    source_eid integer,
    source_pos double precision,
    target_eid integer,
    target_pos double precision,
    directed boolean,
    has_reverse_cost boolean,
    turn_restrict_sql text DEFAULT NULL::text)

也许可以将权重设置为某个特定/神奇的值?

预期的结果是,如果没有与有效机动相交的有效路径,则不应该预期输出。

1 个答案:

答案 0 :(得分:1)

我不确定是否已实施。尝试将成本设置为-1,看看是否有效。

否则你所能做的只是将成本设置为一个非常高的数字,这将迫使它找到一个成本较低的替代路线。然后你需要检查结果,如果包含高成本转弯,那么你需要意识到所要求的路线是不可能的,如果不采取不可能的转弯,所以请视为没有找到路线。