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

使用Osmium从意大利OSM PBF提取Way ID 404140216数据失败

问题描述

从Geofabrik下载的意大利区域italy-latest-internal.osm.pbf文件中,尝试提取Way ID为404140216的数据时失败。

使用的Osmium命令:

osmium getid --output-format=xml italy-latest-internal.osm.pbf 404140216

仅得到边界框输出,无Way实际数据:

<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="osmium/1.17.0">
  <bounds minlat="35.07638" minlon="6.602696" maxlat="47.100045" maxlon="19.12499"/>
</osm>

但在OSM官网可查询到该Way的完整数据。

原因分析
  1. 目标Way不在PBF文件覆盖范围内:Geofabrik的区域PBF文件按地理边界裁剪,若该Way实际位置超出意大利标准地理边界(如邻国或边界缓冲区外),则不会被包含在italy-latest-internal.osm.pbf中。
  2. 命令未明确指定元素类型:Osmium的getid命令仅传入数字ID时,会默认查找node、way、relation三类元素,若文件中无对应ID的Way,就只会返回文件自带的边界框信息。
  3. internal版本文件的特殊性:带internal后缀的PBF文件是Geofabrik内部使用的裁剪版本,可能比公开标准版本包含更少元素,或裁剪规则更严格。
解决方法
  1. 确认Way的地理位置:先查看该Way的实际坐标,确认是否在意大利境内。若不在,需下载包含该区域的更大范围PBF文件(如欧洲区域文件)。
  2. 明确指定元素类型:修改Osmium命令,明确指定提取Way类型,避免模糊匹配:
    osmium getid --output-format=xml italy-latest-internal.osm.pbf way/404140216
    
  3. 替换为标准版本PBF文件:若使用的是internal版本,尝试下载Geofabrik上的标准意大利PBF文件(无internal后缀),这类文件包含更完整的区域元素。
  4. 验证Way是否存在于文件中:使用osmium locate命令确认该Way是否在当前PBF文件内:
    osmium locate italy-latest-internal.osm.pbf way/404140216
    
    若返回not found,则说明该Way确实不在当前文件中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:00:15