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

Posted

技术标签:

【中文标题】在 GeoServer 中使用 OSM 进行路由(最佳实践)【英文标题】:Use OSM for routing in GeoServer (The best practise) 【发布时间】:2016-10-15 18:40:05 【问题描述】:

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

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

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

感谢解答

【问题讨论】:

交叉发布:gis.stackexchange.com/questions/214371/… GraphHopper 的 shapefile 插件正在开发中:github.com/graphhopper/graphhopper/pull/616 【参考方案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 进行测试。

【讨论】:

以上是关于在 GeoServer 中使用 OSM 进行路由(最佳实践)的主要内容,如果未能解决你的问题,请参考以下文章

geoserver的geojson怎么使用

以 XYZ 格式提供 GeoServer Tiles

Geoserver 2.10 Openlayers 3 TextSymbolizer 标签未显示

利用GeoServer发布web地图服务

[原]导入OpenStreetMap海图数据,并在GeoServer上发布

【GIS】矢量瓦片,GeoServer+Mapbox