我试图解决一个常见的问题,即铁路路线,从而强制执行几个转弯限制,例如:"不能通过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)
也许可以将权重设置为某个特定/神奇的值?
预期的结果是,如果没有与有效机动相交的有效路径,则不应该预期输出。
答案 0 :(得分:1)
我不确定是否已实施。尝试将成本设置为-1,看看是否有效。
否则你所能做的只是将成本设置为一个非常高的数字,这将迫使它找到一个成本较低的替代路线。然后你需要检查结果,如果包含高成本转弯,那么你需要意识到所要求的路线是不可能的,如果不采取不可能的转弯,所以请视为没有找到路线。