首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用osmfilter和其他标签信息过滤掉所有的便利设施?

如何使用osmfilter和其他标签信息过滤掉所有的便利设施?
EN

Stack Overflow用户
提问于 2015-01-08 11:26:35
回答 2查看 5.6K关注 0票数 2

我成功地从OSM下载了一个行星文件,并将其转换为o5m格式,并使用OSM转换,并进一步删除了其中的所有作者信息,以使文件大小更小。我试图从整个世界的数据库中获取每一个POI,所以我对城市、城镇、公路、道路等不感兴趣,只对生活设施感兴趣。

首先,我试图通过使用渗透性来实现这一点,它似乎能够实现我想做的事情,只是它总是内存不足,因为文件太大,无法处理。(我可以将文件分割成更小的文件,但如果可能的话,我希望避免这样做)。

我尝试使用osmfilter进行实验,在那里,我设法过滤掉了每个节点,其中包含一个标签名为闭合性,但我有几个问题无法解决:

答:如果我使用以下命令:

代码语言:javascript
复制
osmfilter planet.o5m -v --keep-tags="amenity=" -o=amenities.osm

它保存了所有节点,并过滤掉了所有在其名称中没有方便性的标记。

b.如果我使用这个命令:

代码语言:javascript
复制
osmfilter planet.o5m -v --keep-tags="all amenity=" -o=amenities.osm

现在,它过滤掉所有不具有闭合性标记的节点,但也过滤掉匹配节点中的所有附加标记,这些节点包含我需要的信息(例如POI的名称或描述)。

c.如果我使用这个命令:

代码语言:javascript
复制
osmfilter planet.o5m -v --keep-tags="all amenity= all name=" -o=amenities.osm

过滤掉每个节点,这些节点的标签中有名字或功能,这给我留下了几个有名字的城市或高速公路(我不需要的数据)。

我还试着用AND操作符将其分隔开,但它说,在筛选标记时,我不能使用和操作符。你知道我怎样才能达到预期的结果吗?

最后请注意:我正在运行一个Windows 7系统,所以没有一个基于Linux的程序可以帮助我:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-09 23:22:34

请尝试--keep=选项而不是--keep-tags选项。后者对文件中保存的对象没有影响。

例如:

osmfilter planet.o5m --keep="amenity= and name=" -o=amenities.osm

只保留有舒适标签和名称标签的对象。

请注意,所有依赖对象也将在输出文件中。例如,如果存在带有请求标记的with对象,则该方法的每个节点也将位于输出文件中。这对于关系及其依赖方式和节点也是有效的。如果您不想这样做,请添加--ignore-dependencies

在这里可以找到更多的信息:https://wiki.openstreetmap.org/wiki/Osmfilter

票数 6
EN

Stack Overflow用户

发布于 2017-08-08 14:45:10

代码语言:javascript
复制
osmfilter inputfile.osm --keep-nodes="amenity=" --keep-tags="all amenity= name=" --ignore-dependencies -o=outputfile.osm

这正是你想要的:

保持具有标记允许性的节点(--保持节点)

只保存有关设施和名称的信息(--保留标签)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27839020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档