我需要使用openstreetmap Api获取给定公路里程碑或公里点的纬度和经度,我已阅读文档但我找不到答案。
提前致谢
答案 0 :(得分:2)
公路里程碑的相应OSM tag为highway=milestone。它通常在nodes上找到。
如果你知道高速公路里程碑的粗略位置,那么你可以使用Overpass API来检索它(请注意regular API主要用于编辑地图数据,不应该用来查询它)。所需的query可能如下所示:
<osm-script output="json" timeout="25">
<query type="node">
<has-kv k="highway" v="milestone"/>
<bbox-query e="-117.06" n="33.45" s="33.40" w="-117.09"/>
</query>
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>
这将检索由{em> e =“ - 117.06”n =“33.45”s =“33.40”w =“ - 117.09”定义的bounding box内的所有里程碑。您可以view the result via overpass turbo这是一个很好的Web浏览器,可以使用Overpass API。
您还可以查询特定道路上/附近的所有里程碑:
<osm-script output="json" timeout="25">
<query type="way">
<has-kv k="name" v="Pala Temecula Road"/>
</query>
<query type="node">
<around radius="5"/>
<has-kv k="highway" v="milestone"/>
</query>
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>
这将检索 Pala Temecula Road 周围5米范围内的所有里程碑。
请注意,OSM不包括每个公路里程碑。目前OSM中只有大约30 000个公路里程碑,这并不是很多。但是feel free to add more。