You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从OSM文件提取含经纬度的桥梁列表?Osmosis使用存疑

用Osmosis提取OSM中的桥梁名称及经纬度信息

嘿,我刚好折腾过类似的需求,Osmosis完全能帮你生成「桥梁名称|纬度|经度」这种格式的结果,只要把命令参数组合对就好,我给你详细说下怎么操作:

核心逻辑拆解

要拿到你要的信息,得走这几步:读取目标OSM文件 → (可选)限定区域 → 筛选出标记为桥梁的道路/设施 → 保留需要的标签和关联节点 → 导出成指定分隔符的格式。

完整命令示例

假设你的源文件是brandenburg.osm.bz2,需要用city.poly限定区域,直接用下面的命令就行:

bin/osmosis.bat --rx file="brandenburg.osm.bz2" \
  --bp file="city.poly" \
  --tf accept-ways highway=* bridge=yes \
  --tf reject-relations \
  --used-node \
  --write-csv file="bridges_output.csv" \
  --csv-columns id,tag:name,lat,lon \
  --csv-separator "|"

给你解释下关键参数:

  • --rx:负责读取压缩的OSM文件
  • --bp:用poly文件过滤出指定区域内的要素,不需要区域限制的话直接删掉这一行
  • --tf accept-ways highway=* bridge=yes:筛选所有标记为bridge=yes的道路类设施,如果你要包含铁路桥、人行桥,可以改成highway=*,railway=*,footway=*
  • --tf reject-relations:排除关系型要素,避免输出冗余内容
  • --used-node:保留和筛选出的桥梁关联的节点,这样才能拿到经纬度数据
  • --write-csv:指定输出文件的路径
  • --csv-columns:自定义输出列,tag:name对应桥梁名称,lat和lon是节点的经纬度
  • --csv-separator "|":把分隔符设为竖线,刚好匹配你要的格式

小提醒

  • 有些桥梁可能没有name标签,输出里对应的位置会是空值,后续可以用Excel或者脚本批量处理
  • 因为桥梁是由多个节点组成的way,默认会输出每个节点的坐标行,如果想要每个桥梁只输出一行(比如取第一个节点或者计算中心点),得用Python之类的脚本再处理下导出的CSV文件

内容的提问来源于stack exchange,提问作者Pablo Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:22:29