我正在尝试找到一种方法,从最接近的线段点路由到我的当前位置(纬度,经度)。到目前为止,我能够得到最短路径,但它始于线段的起点。我正在使用prg_trsphttp://docs.pgrouting.org/2.0/en/src/trsp/doc/index.html,因为它有一个功能可以指定沿着线段的起始位置。我能够正确地计算沿着线段的距离并将值传递给函数,但无法弄清楚如何使用函数的结果(pgr_costResult [])来指定路线应从哪里开始(部分沿着最近的线段)。
我有一种感觉,当我加入从路由算法中的结果到我的边缘表以获取几何图形时,我做错了一些事情,因为当我加入它时,它使用边缘表的完整几何图形而不是段。虽然在查看文档时,我没有看到从路由函数返回段的地方。
以下是我想做的内容(红线)和我已经拥有的内容(蓝线)的截图,其中点是当前位置。红线来自于在QGIS中使用pgrouting插件和trsp(edge)选择。请参见下面的代码。非常感谢您的任何帮助!
我有一种感觉,当我加入从路由算法中的结果到我的边缘表以获取几何图形时,我做错了一些事情,因为当我加入它时,它使用边缘表的完整几何图形而不是段。虽然在查看文档时,我没有看到从路由函数返回段的地方。
以下是我想做的内容(红线)和我已经拥有的内容(蓝线)的截图,其中点是当前位置。红线来自于在QGIS中使用pgrouting插件和trsp(edge)选择。请参见下面的代码。非常感谢您的任何帮助!
SELECT st_linemerge(edgeTable.geom_way) FROM pgr_trsp('SELECT id, source, target, cost FROM edgeTable',
(SELECT id FROM origin),
(SELECT * FROM sourcePos),
(SELECT id FROM destination),
(SELECT * FROM destPos),
false, false) AS shortestPath
JOIN edgeTable ON shortestPath.id2 = edgeTable.id;
origin是起始路线的id
sourcePos是沿着线串的偏移量
destination是终点线串的id
destPos是终点线串的分数
所有这些都在此处指定: http://docs.pgrouting.org/2.0/en/src/trsp/doc/index.html
ST_Line_Substring
被称为ST_LineSubstring
。 - Jonas Frei