小编Log*_*n M的帖子

pgRouting:从最近节点沿边缘开始的路线

我正在尝试找到一种从线串上最近的点到我当前位置(纬度,经度)的路线。到目前为止,我能够获得最短路径,但它从线串的最开头(也称为源)开始。我正在使用 prg_trsp http://docs.pgrouting.org/2.0/en/src/trsp/doc/index.html 因为它具有指定沿线串的起始位置的功能。我能够正确计算沿线串的距离并将值传递给函数,但无法弄清楚如何使用函数 (pgr_costResult[]) 的结果来指定路线应从何处开始(部分沿最近的线串)。

当我将路由算法的结果连接到边缘表以获取几何图形时,我有一种感觉,我的连接做错了,因为当我连接时,它使用边缘表的完整几何图形而不是段。虽然,查看文档,我没有看到从路由函数中获取返回段的位置。

下面是我正在尝试执行的操作(红线)和我所拥有的(蓝线)的屏幕截图,该点是当前位置。红线来自于使用 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;
Run Code Online (Sandbox Code Playgroud)

origin 是起始路线的 id

sourcePos 是沿线串偏移的距离

目的地是结束线串的id

destPos 是结束线串的分数

全部按此处指定:http ://docs.pgrouting.org/2.0/en/src/trsp/doc/index.html

postgresql pgrouting

6
推荐指数
1
解决办法
2030
查看次数

标签 统计

pgrouting ×1

postgresql ×1