我正在尝试通过 Overpass API 查询 OpenStreetMaps。
我想查询的是边界框内的道路,上面有任何类型的桥梁,如铁路桥梁等。
我找到了这个例子,这正是我需要的:http: //maxheight.bplaced.net/overpass/map.html
所以,我得到的查询如下所示:
铁路桥梁视图在立交桥涡轮
<osm-script output="json" timeout="25">
<!-- Railway bridges -->
<query type="way">
<has-kv k="bridge" regv="^(yes|viaduct)$"/>
<has-kv k="railway" />
<bbox-query {{bbox}}/>
</query>
<!-- Find roads below the above railway bridges -->
<query type="way">
<around radius="0" />
<has-kv k="highway" regv="^((primary|secondary|tertiary|trunk)(_link)?|service|residential|unclassified)$"/>
<has-kv k="maxheight" modv="not" regv="." />
<has-kv k="maxheight:physical" modv="not" regv="." />
<has-kv k="tunnel" modv="not" regv="." />
</query>
<union>
<item />
<recurse type="way-node"/>
</union>
<!-- print results -->
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>
Overpass Turbo 中的其他桥视图
<osm-script output="json" timeout="25">
<!-- Bridges -->
<query type="way">
<has-kv k="bridge" regv="^(yes|viaduct)$"/>
<has-kv k="railway" modv="not" regv="." />
<bbox-query {{bbox}}/>
</query>
<!-- Find roads below the above bridges -->
<query type="way">
<around radius="0" />
<has-kv k="highway" regv="^((primary|secondary|tertiary|trunk)(_link)?|service|residential|unclassified)$"/>
<has-kv k="maxheight" modv="not" regv="." />
<has-kv k="maxheight:physical" modv="not" regv="." />
<has-kv k="tunnel" modv="not" regv="." />
</query>
<union>
<item />
<recurse type="way-node"/>
</union>
<!-- print results -->
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>
问题是第二个查询。它应该找到穿过道路的桥梁,以及下面的伴随道路。
它现在所做的是返回所有桥梁,除了铁路桥梁 - 这意味着它突出显示了一条下面有自行车道的道路,一条穿过湖泊的道路 - 这是它不应该的。
我今天注意到了这一点,当我开车经过一个突出显示的位置时,发现它只是路下的一条自行车道。