gpt4 book ai didi

gis - Osmosis - 从 OSM 数据中删除业务以供地理编码使用

转载 作者:行者123 更新时间:2023-12-02 17:43:37 28 4
gpt4 key购买 nike

我正在尝试设置 Nominatim 数据库以进行地址地理编码。数据库将由 komoot 的 Photon 使用,但我想这不是那么重要的信息。

问题是我的 osm xml/pbf 文件不仅包含地址,还包含我试图删除的所有其他内容,例如酒吧、各种办公室等。

这个想法是采用这样的方法,直到获得所需的结果集:

osmosis  --read-xml us-northeast-latest.osm.bz2 \
--tf reject-nodes landuse=* \
--tf reject-nodes amenity=* \
--tf reject-nodes office=* \
--tf reject-nodes shop=* \
--tf reject-nodes place=house \
--write-xml output.osm

但是,导入结果文件后,我仍然在搜索结果中得到这些节点(应该被排除):

{
properties: {
osm_key: "office",
osm_value: "ngo",
extent: [
-73.9494926,
40.6998938,
-73.9482012,
40.6994192
],
street: "Flushing Avenue",
name: "Public Lab NYC",
state: "New York",
osm_id: 250328718,
osm_type: "W",
housenumber: "630",
postcode: "11206",
city: "New York City",
country: "United States of America"
},
type: "Feature",
geometry: {
type: "Point",
coordinates: [
-73.9490215989286,
40.699639649999995
]
}
}

记下 osm_key 和值。

我不确定我在这里做错了什么。任何帮助将不胜感激。

最佳答案

我认为您对 OSM 的 elements 不够熟悉和 tags还没有。

删除包含特定标签节点(或方式关系)绝对不是您想要的。相反,您想要删除特定的标签或仅保留特定的标签并删除其他所有内容 - 而不是删除完整的对象。

为了理解这两者之间的区别,您必须知道 addresses in OSM以两种不同的方式建模。它们要么由单独的地址节点建模,要么附加到现有的功能,例如建筑物、商店、餐厅等。第二种方法是此处的重要部分,您的方法将删除所有这些地址。

因此,即使元素“只是”一家商店或一家餐馆,您也希望保留这些元素,因为它们仍然可以包含地址。但是您可以自由地删除这些元素中的所有非地址标记,以及删除根本不包含任何地址标记的所有元素。这应该可以通过渗透实现,但是我对渗透还不够熟悉,无法为您提供所需的参数。

但是我不确定这是否真的是一个好主意,因为多个对象可以共享相同的名称。想象一条河流、一座山峰、一个小村庄和一个大村庄都同名。如果您决定删除区分河流与山峰、小村庄与大村庄所需的所有附加标签,那么在尝试决定从搜索结果列表中选择哪个名称时,您将会遇到麻烦。

关于gis - Osmosis - 从 OSM 数据中删除业务以供地理编码使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479090/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com