当前位置: 首页 > 工具软件 > Node Osmosis > 使用案例 >

wiki osm Osmosis 使用方法记录

汪典
2023-12-01

https://wiki.openstreetmap.org/wiki/Osmosis?tdsourcetag=s_pcqq_aiomsg

https://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage_0.47

 

Osmosis

从一个区域提取高速摄像机的示例:

C:\osmosis\bin>osmosis --read-pbf file=beijing.osm.pbf --node-key-value keyValueList="highway.speed_camera" --write-xml radar.osm

如果您只想要所有高速公路怎么办?

使用tag-filter参数的方式如下:

C:\osmosis\bin>osmosis --read-pbf beijing.osm.pbf --tf accept-way highway=* --used-node --write-xml highways.osm

 

备注:如果从pbf文件读取 需要使用参数:--read-pbf

          如果从osm文件读取 需要使用参数:--read-xml

 

仅提取具有特定标记的方式。指定--used-node仅提取以过滤方式使用的节点。关系保持不变。

在此示例中,我们的输出将是一个文件,其标记方式为railway = tram或tram = tram_stop。

C:\osmosis\bin>osmosis --read-pbf beijing.osm.pbf --way-key-value keyValueList="railway.tram,railway.tram_stop" --used-node --write-xml city_tram.osm

在较大的文件(例如行星文件)上,由于内存限制,这可能会导致段错误。在这种情况下,将idTrackerType = BitSet作为参数传递给--used-node可能会有所帮助:

C:\osmosis\bin>osmosis --read-pbf beijing.osm.pbf --way-key-value keyValueList="railway.tram,railway.tram_stop" --used-node BitSet --write-xml city_tram2.osm

但是如果你想提取除一种或两种类型以外的所有高速公路怎么办?此命令将输出除高速公路或motorway_link标记的高速公路以外的所有高速公路

C:\osmosis\bin>osmosis --read-pbf beijing.osm.pbf --tf accept-ways highway=* --tf reject-ways highway=motorway,motorway_link --tf reject-relations --used-node --write-xml output.osm

从本地PostgreSQL rails端口数据库导出planet文件。

略 未成功

上面的示例使用默认管道连接功能,但是可以用两种方式编写简单的读写行星文件命令行。第一个示例使用默认管道连接,第二个示例使用名为 “mypipe” 的管道显式连接两个组件。只要以正确的顺序指定每个任务,默认管道连接将始终有效。每个任务将其输出流推送到堆栈,并且需要输入流的每个任务从堆栈中获取它们。这种基于堆栈的方法是上述“--apply-change”示例首先读取更改文件,然后数据文件 - --apply-change任务将首先从堆栈中检索数据文件然后改变档案。

C:\osmosis\bin>osmosis --read-xml file="output.osm" --write-xml file="planetout1.osm"

C:\osmosis\bin>osmosis --read-xml file="output.osm" outPipe.0="mypipe" --write-xml file="planetout.osm" inPipe.0="mypipe"

根据渗透/多边形过滤器文件格式文件提取区域

C:\osmosis\bin>osmosis --read-pbf file="beijing.osm.pbf" --bounding-polygon file="country2pts.txt" --write-xml file="germany.osm"

请注意, - way-key-value和--node-key-value不能在一次运行中使用。相反,在几次运行中创建两个(或更多)文件,然后将它们合并在一起(是的,对于n个文件,您需要n-1个合并命令):

osmosis --rx 1.osm --rx 2.osm --rx 3.osm --merge --merge --wx merged.osm

C:\osmosis\bin>osmosis --rx city_tram.osm --rx radar.osm --merge --wx merged.osm

 

 

 

 类似资料: