pg_routing从起点和终点找到最短路径,它们是路径(节点)上的精确顶点,但是当我们想要找到不在路上的位置的最短路径时(如POI,确切地址,...)。一般的解决方案是搜索最近的节点,然后计算最短路径,但结果可能远离现实,例如,如果道路长度很大,或者最近的节点在另一条不相交的道路上搜索位置最近的道路。所以,我想到了解决这个问题的两个解决方案,但是我不知道如果网络成长,pg_routing算法是如何有效的: 1-分开每个X米的道路,这将大大增加节点的数量,BTW拓扑,然后计算这些新节点上的最短路径, 2-在每次pg_routing调用时,预先计算开始/结束位置:找到最近的方式,在最近的位置用ST_LineLocatePoint以2个部分分割,将这些新闻方式附加到其他无分割的方式,最后调用pg_routing 那么,考虑到解决方案2,我不知道如何动态修改拓扑这一事实,这是性能方面的最佳解决方案?
答案 0 :(得分:1)
看看2.2中的WithPoints系列函数,它将很快转向alpha / beta。并且pgr_trsp()已经具备了自2.0以来的功能,您可以在边缘和百分比定义的位置之间进行路由。