我编写了一个查询,从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在边界框中提取所有街道/道路交叉点?
谢谢你们。
发布于 2020-08-27 00:35:17
如果你可以使用Java,你可以尝试Atlas:https://github.com/osmlab/atlas
它读取osm PBF文件,并在交叉口剪切所有可导航的方式。则所有网络Node
对象都是您要查找的交叉点。
https://stackoverflow.com/questions/63262207
复制相似问题