如何使用openstreetmap获取公路里程碑的经度和纬度

时间:2014-05-04 21:46:32

标签: openstreetmap

我需要使用openstreetmap Api获取给定公路里程碑或公里点的纬度和经度,我已阅读文档但我找不到答案。

提前致谢

1 个答案:

答案 0 :(得分:2)

公路里程碑的相应OSM taghighway=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