问题标签 [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.
algorithm - pgrouting - 为特定类型的道路选择具有优势的算法
我想使用 pgrouting 的算法之一来找到两个点之间的(最短)路径:(a)特定类型道路的优势和(b)中间点。
为了构建数据,我使用了 osm2pgrouting。我想首先关注问题(a)。
- 是否有一种算法可以定义我对道路类型的偏好(在表中的 class_id 列 class_id 代表道路类型或在表 osm_way_types 中)?
- 如果不是,我应该如何调整我的数据库?知道我使用了 osm2pgrouting --> 有表 public.osm_way_classes 有 max_speed 但它似乎是调整它的糟糕选择。我想不管它。我在其他表中并没有真正找到任何有用的东西。有任何想法吗?
问题 (b)(不太重要)是确定搜索路径的长度是否小于例如 10 公里。如果没有,则路径应访问指定的中间点(或点)之一。
我认为 pgrouting 中没有算法可以考虑这些“停止”(源和目标之间的中间点)。我认为这个问题(b)应该通过搜索从point1到point2然后从p2到p3等的路径来解决,但我还不知道如何确定这些点。
android - 来自 pgRouting Heading Android 的 Turn-by-Turn Navigation 指令
我正在使用 pgRouting 请求,所以我得到了每条边的航向结果。当我当前位置与下一个边缘起点之间的距离小于 50 米时,我想显示转弯消息。我在 onLocationChanged 方法中执行此操作。但是我有滞后,因为由于位置管理器,代码每毫秒执行一次。请我需要帮助,在此先感谢。
algorithm - pgrouting / postgis - 搜索中间点的算法
我面临一个子问题,在那里我获得了我所在城市的数据库(带有 postgis,pgrouting)。
我需要创建一条从 A 点到 B 点的路径/路线。如果这条路径超过 xx 公里,那么这条路径必须访问给定的“停止点”之一(我们称之为 C)。如果从 C 到 B 的路径长于 xx 公里,那么我们必须在 C 和 B 之间的某个地方再访问一个中间“停止点”等。
sql - 当我在 geoserver 中创建新的 sql 视图时出错:函数 wrk_fromatob() 不存在
你好,我正在学习用这个新的研讨会创建一个路由应用程序。这是使用 Postgres 作为数据库,以及它的扩展 PostGIS 和 pgRouting。它使用 GeoServer 来管理数据并发布。
我从 osm 获取数据,然后使用 osm2pgrouting 将其添加到数据库中以便能够使用它们。之后,我也安装了 geoserver,然后为我的数据创建了一个图层,但是当我尝试创建新的 SQL 视图时,我收到了这个错误:
错误:函数 wrk_fromatob(unknown, integer, integer, integer, integer) 不存在 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。职位:76
我搜索了很多,但找不到任何答案。
sql - 错误:用作表达式的子查询返回多行
我正在从 pgrouting a Practical Guide 书中做一个示例,但是使用我自己的表格,我遇到了这个错误。我已经使用 LIMIT 1 来避免这个错误,就像书中的例子一样,但肯定还有另一个错误。关于修复的任何想法?
错误:
用作表达式的子查询返回的不止一行
postgresql - 我正在创建一个边缘表,如何防止重复边缘
查询是这样的:
我的 getcentroids 函数返回 8 个最近点到每个点创建一条边,每个点都创建一条边,问题出现在重复项上,因为从 1->2 和 2->1 创建了相同的边,我如何优化这个查询本身必须处理数据,索引或唯一约束有帮助吗?
linux - PostgreSQL 内存不足:Linux OOM 杀手
我遇到了大型查询的问题,我希望依赖我的 postgresql.config 的错误配置。我的设置是 Ubuntu 17.10 上的 PostgreSQL 9.6,具有 32GB RAM 和 3TB HDD。该查询正在运行 pgr_dijkstraCost
以在 25.000 个链接的网络中创建约 10.000 个点的 OD 矩阵。因此,结果表预计会非常大(~100'000'000 行,列从、到、成本)。但是,创建简单测试select x,1 as c2,2 as c3
from generate_series(1,90000000)
成功。
查询计划:
这会导致 PostgreSQL 崩溃:
运行dmesg
我可以追溯到内存不足问题:
运行查询时,我还可以观察top
到我的 RAM 在崩溃前下降到 0。崩溃前提交的内存量:
当 RAM 不足时,我希望 HDD 用于写入/缓冲临时数据。但是我的硬盘上的可用空间在处理过程中不会改变。所以我开始挖掘丢失的配置(由于我重新定位的数据目录而导致的问题)并关注不同的站点:
https://www.postgresql.org/docs/current/static/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT https://www.credativ.com/credativ-blog/2010/03/postgresql-and-linux -内存管理
除了数据目录中的更改外,我对 postgresql.conf 的原始设置是默认设置:
我改变了配置:
重新启动sudo service postgresql reload
并测试相同的查询,但发现行为没有变化。这是否仅仅意味着,这么大的查询不能做?任何帮助表示赞赏。
google-cloud-platform - PgRouting in GCP Cloud SQL
Is there any good reason why the pgrouting extension is still not supported by GCP Cloud SQL? I mean, Cloud SQL even supports PostGIS 2.3 version.
Also, considering I already have PostGIS 2.3 installed on Cloud SQL, is there any way I could install pgrouting manually without issuing the CREATE EXTENSION statement?
Thanks in advance.
postgresql - 如何在 mac 中为 postgres.app 安装 pgrouting
关于如何在 mac 中为 postgres.app 安装 pgrouting 的任何想法?
我尝试恢复备份文件,但显示以下错误:
扩展“pgrouting”不存在
postgresql - pgRouting:从沿边最近的节点开始的路由
我正在尝试找到一种从线串上的最近点路由到我当前位置(纬度,经度)的方法。到目前为止,我能够获得最短路径,但它从线串(又名源)的最开始开始。我正在使用 prg_trsp http://docs.pgrouting.org/2.0/en/src/trsp/doc/index.html 因为它具有指定沿线串的起始位置的功能。我能够正确计算沿线串的距离并将值传递给函数,但无法弄清楚如何使用函数(pgr_costResult [])的结果来指定路线的起点(部分沿最近的线串)。
当我将路由算法的结果连接到我的边缘表以获取几何图形时,我有一种感觉我做错了连接,因为当我加入时,它使用边缘表的完整几何图形而不是分段。虽然,查看文档,我看不到您从路由函数中获得返回段的位置。
下面是我正在尝试做的(红线)和我拥有的(蓝线)的屏幕截图,该点是当前位置。红线来自使用 qgis 中的 pgrouting 插件和 trsp(edge) 选择。
请参见下面的代码:
任何帮助将非常感激!
origin 是起始路线的 id
sourcePos 是沿线串偏移的距离
目的地是结束线串的ID
destPos 是结束线串的分数
此处指定的所有内容:http: //docs.pgrouting.org/2.0/en/src/trsp/doc/index.html