pg_routing 的准确位置表现

performance of pg_routing with exact location

pg_routing求起点和终点的最短路径,起点和终点是路径(节点)上的精确顶点,但是当我们想找到不在的位置的最短路径时,没有合适的解决方案方式(如 POI、确切地址等)。一般的解决方案是搜索最近的节点,然后计算最短路径,但结果可能与实际情况相去甚远,例如,道路长度很大,或者最近的节点在另一条不相交的道路上搜索位置最近的道路。所以,我考虑了这个问题的 2 个解决方案,但我真的不知道 pg_routing 如果网络长大,算法是如何有效的: 1- 在每 X 米处分割道路,这将大大增加节点数量,顺便说一下拓扑结构,然后计算这些新节点上的最短路径, 2- 在每次 pg_routing 调用时,预先计算 start/end 位置:找到最近的方式,将这种方式分成两部分,最近的位置为 ST_LineLocatePoint,将这些新闻方式附加到其他不分路,最后调用pg_routing 那么,考虑到对于解决方案 2,我不知道如何动态修改拓扑这一事实,就性能而言,哪个是最佳解决方案?

查看 2.2 中的 WithPoints 函数系列,它们很快就会 alpha/beta。并且 pgr_trsp() 自 2.0 以来已经具有该功能,您可以在边缘和沿该边缘的百分比定义的位置之间路由。