问题标签 [pgrouting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - OSM2PO 导入后的 OSM 路网分割线,用于使用 pgrouting 创建集水区
我想创建一个基于 osm.pbf 文件的 pgrouting 集水区。使用 OSM2PO 导入 pbf 文件后,使用 pgrouting 计算集水区工作正常。但要获得更详细的结果,最好至少在 2 公里后分割所有较长的道路。用 PostGIS 分割线没问题,但这会破坏我的路由网络。是另一种添加更多顶点的方法吗?谢谢!
mysql - 如何获得 pgr_dijkstra pgrouting 中节点序列的距离?
我有一个整数数组(节点或目的地),即数组[2,3,4,5,6,8],需要按给定的顺序访问。我想要的是,使用 pgr_dijkstra 获得最短距离。但是 pgr_dijkstra 找到了两点的最短路径,因此我需要使用 pgr_dijkstra 找到每对的距离并添加所有距离以获得总距离。对将像
2,3
3,4
4,5
5,6
6,8。有没有办法定义一个函数来接受这个数组并使用 pgr_dijkstra 找到最短路径。
查询是:
对于第一对(2,3)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads',2,3, false);
对于第二对(3,4)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,3,4,*** false)
对于第三对(4,5)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,4,5,*** false)
;
注意:数组大小不是固定的,可以不同。
有什么方法可以在 postgres sql 中自动执行此操作,可能正在使用循环等?请让我知道该怎么做。谢谢你。
postgresql - PostgreSQL 版本 10 是否支持 pgRouting 版本 2.6?
我通过 brew 安装了 pgRouting 2.6 版,我有 PostgreSQL 10.4 版。现在我有一个问题:这个 PostgreSQL 版本是否支持 pgRouting 扩展?因为每次我查询:
此查询失败并给出错误消息:
postgresql - pgr_createTopology() 函数中的参数作为查询
我正在使用 pgrouting 2.1.0。
我在不同的表中(在不同的模式中)有空间和非空间数据。在这里,我正在创建一个view
包含 geom(填充)、id(填充)源(空白)和目标(空白)。
我已经尝试过pgr_createTopology()
功能,但在视图中它正在运行,因为它需要表格。还尝试写入查询pgr_createtopology()
但未成功。任何人都可以建议其他选择。
我无法合并空间和非空间数据。
postgresql - 如何从某个位置获得可以在 10 分钟内行驶的道路
我有基于道路类型的速度限制的 postgis 道路网络表数据库。通过使用 Dijkstra 或任何其他算法,我可以得到两点之间的最短路径/路线。现在我想获得可以在 10 分钟内从某个位置(点)经过的可能路径。因为我有一个基于道路类型的速度限制,所以生成的路径可能不是相同的长度。在这种情况下,单一来源所有目的地算法可能会有所帮助,但我的目的地点可能作为网络中的节点可用,也可能不可用因为我的时间成本。请帮我。
postgresql - rows_where 参数未传递给 pgr_nodenetwork
我正在使用扩展的pgr_NodeNetwork
功能pgrouting
来处理包含线串几何图形(本质上是道路)的表。
语法如下:
特别是,该参数rows_where
仅用于处理条件rows_where
为真的行。
但是,在执行开始时,会发出以下通知:
您可以看到通知没有考虑rows_where
传递给函数的参数(在我的示例中,它是'id < 10'
)。
此外,这似乎不仅仅是通知本身的显示问题,因为对于具有数百万行的表来说,处理需要几个小时,而如果'id < 10'
真的考虑到条件,它应该会非常快(因为它会是少于 10 行的表)。
另一方面,如果我们探索函数本身的代码,它的开头是:
如果您在开头定义另一个具有相同参数和相同RAISE NOTICE
指令的函数,您将看到该函数引发的通知正确地再现了rows_where
用户传递的参数。
是否有人解释为什么rows_where
pgr_nodeNetwork 函数似乎完全忽略了该参数,而使用完全相同的代码定义一个全新的函数却不会产生相同的结果?
sql - 基于上一行和下一行的 Postgres 查询
不确定我的设计是否足以随着时间的推移解决总线路由问题。这是我的解决方案,主要步骤如下:
步骤 1)有一个代表所有边的边表(源和目标代表顶点(公共汽车站):
第 2 步)有一个表格,代表巴士的详细信息,如时间、时间、边缘等。
注意:我已经为“from”和“to”列使用整数格式以获得更快的结果,因为我可以进行整数查询,但如果可用,我可以用任何更好的格式替换它。
步骤 3) 使用 dijkstra 算法找到最近的路径。
步骤 4) 以最早的一阶从 busedgetimes 表中获取即将到来的公共汽车,以获得由 dijkstra 算法检测到的最近路径。
问题:我发现很难查询第 4 步。
例如:如果我将路径作为边 2、3、4,在上述记录中从源顶点 2 行进到目标顶点 5。要获得第一条边的第一条总线,这并不难,因为我可以简单地查询,from < 'expected departure' order by from desc
但对于第二条边,from
条件需要to
第一个结果行的时间。此外,查询需要边缘 ID 过滤器。
如何在单个查询中实现这一目标?另外,请建议我是否有更好的设计?
谢谢
postgresql - pgr_nodeNetwork 需要很长时间才能运行
我正在使用PostGIS/PostgreSQLpgr_nodeNetwork
的扩展pgrouting
。
我目前正在一个边表(它是一个道路网络)上运行这个算法,它包含大约。100,000 条边。已经17个小时了,查询还没有结束。
这个算法跑这么久很正常吗?
postgresql - 随时间变化的公交线路架构设计
这是为了确认我的设计是否足够好或获得更好的想法来解决总线路由问题。这是我的解决方案,主要步骤如下:
有一个代表所有边的边表(源和目标代表顶点(公交车站):
/li>有一张表格,代表巴士的详细信息,例如从时间、到时间、边缘等。
注意:我对“from”和“to”列使用整数格式以获得更快的结果,因为我可以进行整数查询,但如果可用,我可以用任何更好的格式替换它。
/li>使用
dijkstra
算法找到最近的路径。对于算法
busedgetimes
检测到的最近路径,以最早的第一顺序从表中获取即将到来的公共汽车。dijkstra
=> 这会导致查询有点复杂。
我可以对此做任何改进,还是有更好的设计?
与此相关的文档和文章的链接将非常有帮助。