问题标签 [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.

0 投票
1 回答
937 浏览

postgresql - 在 GeoServer 中使用 OSM 进行路由(最佳实践)

我是 OSM 的新手,但现在我需要创建将使用 GIS(地理服务器)的应用程序,并将提供从 A 点到 B 点的道路服务。

我找到了一些关于此的信息,但我仍然有任何问题。我的是下载开放的街道地图并提取到数据库(PostgreSQL),并使用插件 pgRouting 进行路由。接下来将 db 连接到地图服务器并为客户端提供 api。

问题: 1. 那是正确的方法吗?2. osm 格式如何用于 postgre?(osm.pbf?shp.zip?还是别的什么?)

感谢您的回答

0 投票
1 回答
941 浏览

postgresql - 如何将 OSM 导出到包含所有城市和街道名称的数据库?

我下载了我县的 osm 地图并创建了空间 pg 数据库。我使用以下命令通过 osm2pgrouting 导出的 osm 文件:

导出表后,我有这个架构:

你能告诉我我做错了什么吗?如何使用城市和街道等所有节点将 osm 文件导入数据库?感谢您的回答。

0 投票
2 回答
743 浏览

sql - SQL:如何在 PostGIS 表的 line shapefile 中获取给定坐标的源/目标?

我在 PostGIS 中加载了一个 line shapefile 并pgr_createTopology在 pgRouting 中使用,通过添加源和目标来使表可路由(分配线源编号和目标编号的 2 个端节点)。下图是表格的一部分:

在此处输入图像描述

现在我有一些末端节点的坐标,它们属于表中的行,我想知道这些坐标对应的源/目标数量。

例如,在上表中,假设259463.392, 2737830.062是 和 的端节点之一line id=1line id=2那么这个坐标有source/target=175

我是 SQL 新手,尝试了一些查询,但出现错误:

错误:


更新#1

我想如果列源/目标包含节点坐标的信息,我可以知道我想要什么,但似乎不是,它们只是包含数字的列。

我得到的顶点表如下:

在此处输入图像描述

我使用以下查询来获取下表:

在此处输入图像描述

我仍在寻找是否可以通过上面的两张表来满足我的需求。

所以我尝试了下面的查询并在给定坐标附近得到了两条线:

在此处输入图像描述

后来我从第一张图中显示的表格中发现坐标分别是id 170/51的source/target=54,但仍然效率低下。

我想知道在我发现给定坐标位于这两行之间之后,有没有办法找到相同的源/目标编号,在这种情况下line id=51,它们都包含?line id=170


更新#2

根据顶点表,我使用以下查询来获取给定坐标的对应源编号,也就是点 id:

在此处输入图像描述

0 投票
1 回答
1097 浏览

sql - 列“pedroad.id”必须出现在 GROUP BY 子句中或在聚合函数中使用

我应该如何使用group by

0 投票
2 回答
672 浏览

postgresql - 使用 pgr_drivingDistance 获取最快路径的距离

我在 PostgreSQL 中使用OSM2PO创建了一个基于 OSM 的路由网络,扩展名为 pgrouting。我有一个列km(以公里为单位的距离)、一个列cost(行驶时间)和max_speed. 我尝试使用列(以公里为单位的距离)创建具有函数pgr_drivingDistance的集水区。km这会计算出具有最短路径的集水区,在大多数情况下,这对于汽车来说并不是一个现实的距离。因此,我想根据最短的驾驶时间使用cost. 但结果,我需要以为单位而不是时间。非常感谢任何提示。

简短版本:我需要一个以公里为单位的集水区,以获取最快(最短时间)的路线!

以下是 pgr_drivingDistance 的标准代码,最短距离以公里为单位:

0 投票
1 回答
181 浏览

java - 使用 gps 坐标查找到下一个顶点的距离

我正在使用 Java 和 Postgres 创建一个公交车到达预测系统。每辆公交车都有固定的路线,因此我们将整个行驶路线作为 LineString 存储在 postgres 中。

在此处输入图像描述

有 3 个公交车站,每个公交车站 lat lon 也作为 LineString 存储在路线表中。还有一张包含停工名称和经纬度详细信息的表格。

stoppage_details 表

我正在寻找 Postgres 函数来解决以下问题。

  1. 如何使用 LineString(起点 lat lon 和 End point lat lon)获得路线的总距离(660m)。
  2. 每条总线上都安装了 GPS 系统,每 30 秒发送一次数据。我正在使用 ST_ClosestPoint 函数从 LineString 中查找最近的顶点。如何使用 LineString 找到顶点与下一个和上一个停止点之间的距离。
  3. 或者有人可以建议任何其他方法来解决上述问题。
0 投票
1 回答
892 浏览

postgresql - osm2pgrouting - 解析格式不正确的数据(无效令牌)

我需要通过 osm2pgrouting 工具将开放的街道地图数据导入我的 PostGIS 数据库。但是当我运行命令时,创建了表但没有任何数据。你能告诉我我做错了什么吗?我已经在我的数据库中安装了扩展 pgrouting ...

作为 mapconfig,我使用默认的 mapconfig.xml,它与 osm2pgrouting 工具 (C:\Program Files\PostgreSQL\9.5\bin) 位于同一文件夹中。我正在使用 Windows 操作系统。

地图配置:

0 投票
1 回答
128 浏览

r - 从网络中移除一个节点而不影响其他节点的交互

这是我的大图示例:

在此处输入图像描述

我想删除节点“B”而不影响其他节点的交互:

在此处输入图像描述

我与“R”、“PgRouting”、“gephi”和“networkx”一起工作。而且我没有找到一种有效的方法来做到这一点。有什么建议吗?

0 投票
0 回答
132 浏览

postgresql - 如何将 pg 路由安装到现有的 postgresql 9.1 数据库

我使用并创建了数据库“ mydb ”安装了postgresql 9.1.12。然后使用扩展mydbsudo apt-get install postgresql-9.1 postgresql-9.1-contrib postgresql-9.1-postgis

我想在我的ubuntu 12.04机器上安装 pg 路由到“mydb”。我试过这个psql mydb -c "create extension pgrouting"但得到错误

然后从http://pgrouting.org/download.html下载pgrouting-1.05.tar.gz但不知道如何安装到现有数据库。

0 投票
1 回答
1287 浏览

postgresql - postgres 中的 Pgrouting - 无法创建扩展

我用 EDB 安装程序安装了 postgres。我想在我的数据库中使用 pgrouting。所以我通过自制软件下载了它brew install pgrouting

接下来,我想在我的数据库中初始化它:psql mydatabase -c "create extension pgrouting;"

但我得到了这个错误ERROR: could not open extension control file "/Library/PostgreSQL/9.6/share/postgresql/extension/pgrouting.control": No such file or directory

我发现pgrouting.control/usr/local/Cellar/pgrouting/2.4.1/share/postgresql/extension/pgrouting.control

我应该将这些文件从 /usr... 复制到 /Library/Postgres... 吗?