Файлы OpenStreetMap pbf - извлекают все перекрестки улиц / дорог в ограничивающую рамку - PullRequest
0 голосов
/ 05 августа 2020

Я написал запрос, который извлекает все пересечения улиц / дорог в ограничивающей рамке из 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 Ответ

0 голосов
/ 26 августа 2020

Если вас устраивает использование Java, вы можете попробовать Atlas: https://github.com/osmlab/atlas

Он читает файлы OSM PBF и отсекает все пути на перекрестках. Тогда все объекты сети Node будут пересечениями, которые вы ищете.

...