我是 OSM 的新手,但现在我需要创建将使用 GIS(地理服务器)的应用程序,并将提供从 A 点到 B 点的道路服务。
我找到了一些关于此的信息,但我仍然有任何问题。我的是下载开放的街道地图并提取到数据库(PostgreSQL),并使用插件 pgRouting 进行路由。接下来将 db 连接到地图服务器并为客户端提供 api。
问题: 1. 那是正确的方法吗?2. osm 格式如何用于 postgre?(osm.pbf?shp.zip?还是别的什么?)
感谢您的回答
我是 OSM 的新手,但现在我需要创建将使用 GIS(地理服务器)的应用程序,并将提供从 A 点到 B 点的道路服务。
我找到了一些关于此的信息,但我仍然有任何问题。我的是下载开放的街道地图并提取到数据库(PostgreSQL),并使用插件 pgRouting 进行路由。接下来将 db 连接到地图服务器并为客户端提供 api。
问题: 1. 那是正确的方法吗?2. osm 格式如何用于 postgre?(osm.pbf?shp.zip?还是别的什么?)
感谢您的回答
让我详细说明一下,从开始到结束需要什么:
首先,您需要下载 OSM 数据,您只需使用Overpass API即可。
基于OSM2PO JAVA 的 CLI 工具将 OSM 数据转换为可路由数据,这里是如何使用该工具的良好指南。
带有postgis 和 pgRouting扩展的 Postgresql,您将使用 dijkstra 算法来获得最短路径,或者任何其他最适合您的算法。
最后,您将需要Geoserver,它将提供 OGC 标准,例如WMS 和 WFS,通过它您可以获取栅格或矢量格式的路线,您可以将表格存储为图层,您可能需要SQL View。
此外,对于前端,您可以使用 OpenLayers,它是一个 JavaScript Web 映射库,或者您可以使用 Leaflet,您可以轻松地从这些库向 Geoserver 发出 WMS 和 WFS请求,并且 Geoserver 将向您发送响应,以及您请求的数据,如果请求是正确的。
注意:您可以使用带有 pgRouting 插件的 QGIS v2 进行测试。