我正在使用
osmium
工具从 planet.osm.pbf
文件中过滤一些数据,以便将该数据注入到 Nominatim
docker 中。
这是我的命令:
osmium tags-filter planet-latest.osm.pbf place=city,town,village -o planet-light.osm.pbf --overwrite
这正在按预期工作。然而,它为我保留了很多无用的数据。例如,它保留了所有地点的翻译。
巴黎样品:
"namedetails": {
"ref": "75",
"name": "Paris",
"name:af": "Parys",
"name:am": "ፓሪስ",
"name:an": "París",
"name:ar": "باريس",
"name:ba": "Париж",
"name:be": "Парыж",
"name:nl": "Parijs",
"name:no": "Paris",
"name:oc": "París",
"name:or": "ପ୍ୟାରିସ",
"name:os": "Париж",
"name:pa": "ਪੈਰਿਸ",
"name:pl": "Paryż",
"name:ps": "پاريس"
...
}
由于我的数据库中有很多记录,所有这些翻译都占用了很多地方,我不需要它们。
有没有办法只保留一些标签?例如,我只想保留以下标签:
name
、name:en
、name:fr
。
这个问题可能会在 https://gis.stackexchange.com/ 上得到更好的答复。
我也遇到这个问题了。如果您愿意从
pbf
导出到 geojson
,则 osmium export
命令允许标签过滤。如果您有一个像这样的配置文件config.json
:
{
"attributes": {
"type": false,
"id": false,
"version": false,
"changeset": false,
"timestamp": false,
"uid": false,
"user": false,
"way_nodes": false
},
"format_options": {
},
"linear_tags": false,
"area_tags": false,
"exclude_tags": [],
"include_tags": ["name:en"]
}
那么输出将仅包含
include_tags
键(此处为 name:en
)中指定的标签。您可以按如下方式使用它:
osmium export input.pbf --config=config.json --keep-untagged --output=output.geojson
请注意,除非您使用
keep-untagged
标志,否则没有选定标签的行将被丢弃。