使用Osmium修改大尺寸本地OSM地图中Sainte-Hélène街限速遇提取问题
正确修改大尺寸OSM PBF文件中路限速的步骤
你之前的问题出在两个关键环节:一是错误使用osmium extract的参数(该命令的-p用于地理范围提取,而非标签过滤);二是用osmium merge合并文件会导致元素重复,应该使用专门的修改应用命令。以下是完整的正确操作流程:
1. 提取目标道路路段
使用osmium tags-filter直接按标签筛选出Rue Sainte-Hélène的道路元素,命令如下:
# 筛选所有带highway标签且名称为Rue Sainte-Hélène的节点/路径/关系 osmium tags-filter map.osm.pbf nwr/highway,name="Rue Sainte-Hélène" --overwrite -o road_segment.osm
2. 编辑限速标签
用文本编辑器打开road_segment.osm,找到所有包含maxspeed标签的元素,修改其值。例如:
将 <tag k="maxspeed" v="50"/> 改为 <tag k="maxspeed" v="30"/>
如果元素原本没有maxspeed标签,直接添加该标签即可。
3. 将修改应用回原PBF文件
使用osmium apply-changes命令将修改后的元素替换原文件中的对应元素(而非合并重复元素),命令如下:
osmium apply-changes map.osm.pbf road_segment.osm --overwrite -o modified_map.osm.pbf
额外优化提示
- 如果只是确认道路名称,无需导出CSV,直接用以下命令即可列出所有道路名称:
osmium tags-filter map.osm.pbf nwr/highway --output-format osm | osmium tags-filter - nwr/name | osmium export - --output-format csv --columns name | sort | uniq - 若修改后需要验证结果,可使用
osmium tags-filter提取修改后的路段检查:osmium tags-filter modified_map.osm.pbf nwr/highway,name="Rue Sainte-Hélène" --output-format osm | grep maxspeed
内容的提问来源于stack exchange,提问作者Xavier Prudent
相关产品推荐
相关产品推荐

