OpenStreetMap pbf 文件 - 在边界框中提取所有街道/道路交叉点

Posted

技术标签:

【中文标题】OpenStreetMap pbf 文件 - 在边界框中提取所有街道/道路交叉点【英文标题】:OpenStreetMap pbf files- extracts all street/roads intersections in a bounding box 【发布时间】:2020-08-05 09:26:53 【问题描述】:

我编写了一个查询,从 OpenStreetMaps 中提取边界框中的所有街道/道路交叉点,如下所示:

    <osm-script>
<query type="way" into="hw">
  <has-kv k="highway"/>
  <has-kv k="highway" modv="not" regv="footway|cycleway|path|service|track"/>
   <bbox-query e="51.0" n="50.748" s="50.746" w="7.154"/> 
</query>
 
<foreach from="hw" into="w">
  <recurse from="w" type="way-node" into="ns"/>
  <recurse from="ns" type="node-way" into="w2"/>
  <query type="way" into="w2">
    <item set="w2"/>
    <has-kv k="highway"/>
    <has-kv k="highway" modv="not" regv="footway|cycleway|path|service|track"/>
  </query>
  <difference into="wd">
    <item set="w2"/>
    <item set="w"/>
  </difference>
  <recurse from="wd" type="way-node" into="n2"/>
  <recurse from="w"  type="way-node" into="n3"/>
  <query type="node">
    <item set="n2"/>
    <item set="n3"/>
  </query>
  <print/>
</foreach>
  </osm-script>

但是,我想在本地处理 pbf 文件,所以我需要弄清楚如何去做。 是否可以使用 OSMFILTER/OSMCONVERT/Osmosis/OTHER 提取边界框中的所有街道/道路交叉点?

谢谢大家。

【问题讨论】:

【参考方案1】:

如果你使用 Java 没问题,你可以试试 Atlas:https://github.com/osmlab/atlas

它读取osm PBF文件,并在十字路口切断所有通航方式。那么所有的网络Node对象就是你要找的路口。

【讨论】:

以上是关于OpenStreetMap pbf 文件 - 在边界框中提取所有街道/道路交叉点的主要内容,如果未能解决你的问题,请参考以下文章

osm pbf格式怎么转xml

Mapbox - 如何在 Mapbox 中添加 .pbf 文件作为图层?

将 shp 文件(sf 对象)转换为 osm pbf?

如何计算与栅格单元相交的矢量几何图形的数量?

Get A Transportation Network From OSMFile

ruby 使用从osm.pbf输入中提取的多边形列表编辑输入osm文件的过程