【问题标题】:Use OSM for routing in GeoServer (The best practise)在 GeoServer 中使用 OSM 进行路由(最佳实践)
【发布时间】:2016-10-15 18:40:05
【问题描述】:
我是 OSM 的新手,但现在我需要创建将使用 GIS(地理服务器)的应用程序,并将提供从 A 点到 B 点的道路服务。
我找到了一些关于此的信息,但我仍有任何问题。
我的是下载开放的街道地图并提取到数据库(PostgreSQL),并使用插件 pgRouting 进行路由。接下来将db连接到地图服务器并为客户端提供api。
问题:
1.这是正确的方法吗?
2. osm 格式如何用于 postgre? (osm.pbf?shp.zip?还是别的什么?)
感谢解答
【问题讨论】:
标签:
postgresql
gis
openstreetmap
geoserver
pgrouting
【解决方案1】:
让我详细说明一下,从开始到结束需要什么:
首先你需要下载 OSM 数据,你可以简单地使用Overpass API。
OSM2PO 基于 JAVA 的 CLI 工具,用于将 OSM 数据转换为可路由数据,here 是如何使用此工具的良好指南。
带有 postgis 和 pgRouting 扩展的 Postgresql,您将使用 dijkstra 算法来获得最短路径,或任何其他最适合您的算法。
最后,您将需要 Geoserver,它将提供 OGC 标准,例如WMS 和 WFS,您可以通过它们获得光栅或矢量格式的路线,您可以将表格存储为图层,您可能需要SQL View。
-
此外,对于前端,您可以使用 OpenLayers,它是一个 JavaScript Web 映射库,或者您可以使用 Leaflet,
您可以轻松地从这些库向 Geoserver 执行 WMS 和 WFS 请求,如果请求正确,Geoserver 将向您发送一个响应,其中包含您请求的数据。
注意:您可以使用带有 pgRouting 插件的 QGIS v2 进行测试。