如何从 OpenStreetMap 中提取街道图或网络?
How to extract street graph or network from OpenStreetMap?
如何从 OpenStreetMap 中提取街道图或网络?
解决方案:
有很多解决方案可以实现这个目标,我在下面列出了其中的一些。
- Overpass-api
Overpass-api 和 overpass-turbo 让您使用 overpass 查询语言来收集城市的 ways and nodes of type highway :
[out:xml]; area[name = "Pantin"]; (way(area)[highway]; ); (._;>;); out;
Pantin is a city in France
- Geofabrik & Osmium
Geofabrik 允许您下载从大陆到城市的各种数据集。
接下来,使用 Osmium 标签过滤器 提取节点和高速公路类型的路径:
osmium tags-filter map.osm w/highway -o highways-ways.osm
NOTE: osmium tags-filter also works with .pbf files
- Ophois
Ophois 是一个用 Rust 编写的 CLI 工具,我创建它是为了:
- 从立交桥下载地图-api
- 处理来自 Overpass 或 Geofabrik 的数据以提取街道图
- 使用详细的启发式方法简化提取的图
- 将提取或简化的图形离散化为以米为单位的距离
我还创建了一个简单的工具来在 Leaflet 地图上显示生成的图形以检查简化过程,cartographe.
Cartographe 让您使用 haversine formula.
检查节点 ID 和以米为单位的链接距离
提取
简化
简化和离散化
NOTE: Simplified and discretized with 10 meters parameter
- OSMnx
OSMnx:Python 用于街道网络。从 OpenStreetMap 检索、建模、分析和可视化街道网络和其他空间数据。
NOTE: Pantin using OSMnx
如何从 OpenStreetMap 中提取街道图或网络?
解决方案:
有很多解决方案可以实现这个目标,我在下面列出了其中的一些。
- Overpass-api
Overpass-api 和 overpass-turbo 让您使用 overpass 查询语言来收集城市的 ways and nodes of type highway :
[out:xml]; area[name = "Pantin"]; (way(area)[highway]; ); (._;>;); out;
Pantin is a city in France
- Geofabrik & Osmium
Geofabrik 允许您下载从大陆到城市的各种数据集。
接下来,使用 Osmium 标签过滤器 提取节点和高速公路类型的路径:
osmium tags-filter map.osm w/highway -o highways-ways.osm
NOTE: osmium tags-filter also works with .pbf files
- Ophois
Ophois 是一个用 Rust 编写的 CLI 工具,我创建它是为了:
- 从立交桥下载地图-api
- 处理来自 Overpass 或 Geofabrik 的数据以提取街道图
- 使用详细的启发式方法简化提取的图
- 将提取或简化的图形离散化为以米为单位的距离
我还创建了一个简单的工具来在 Leaflet 地图上显示生成的图形以检查简化过程,cartographe.
Cartographe 让您使用 haversine formula.
提取
简化
简化和离散化
NOTE: Simplified and discretized with 10 meters parameter
- OSMnx
OSMnx:Python 用于街道网络。从 OpenStreetMap 检索、建模、分析和可视化街道网络和其他空间数据。
NOTE: Pantin using OSMnx