从OpenStreetMap获取地点/街道等列表?

时间:2011-08-22 13:55:57

标签: openstreetmap

给定纬度/经度组合以及该点的半径(以km为单位,如果它有所不同),是否有人知道我可以用来获取列表的服务/ API(甚至下载)所有来自纬度/经度的圆圈内的所有地方,街道等?当我说所有的地方时,我对所有事情都感兴趣 - 从水体到学校。

非常感谢任何帮助,非常感谢。 :)

2 个答案:

答案 0 :(得分:8)

OSMAXPI,一种网络服务协议,可以一些你正在寻找的东西。您的案例有几个问题:

  1. 有一种方法可以根据边界框查询OSM数据(所以是由半径定义的圆形区域)。
  2. 区域有多大,您可以通过一次查询获取多少数据。
  3. 另一种方法是下载Planet OSM文件并设置您自己的数据库和API 服务,但这需要大量的硬件资源,因为数据库非常大并且每天都在增长。

    另请参阅其他一些相关的质量保证:

答案 1 :(得分:3)

有些人提供了一个名为Overpass的API,它允许您提交任意复杂的查询并获得您需要的数据。如果你想要在某个边界框中完全包含所有内容或重叠,这些符文对我有用(替换你自己的边界框;对不起,它不是圆形,而是以度为单位的矩形)。在http://www.overpass-api.de/query_form.html的查询表单中使用它们。

<osm-script timeout="10000" element-limit="1073741824">
  <union into="_">
    <bbox-query into="_" s="52.3170669250001" n="52.4027433480001" w="4.80527567900009" e="4.97793537400008"/>
    <recurse from="_" into="_" type="up"/>
    <recurse from="_" into="_" type="down"/>
  </union>
  <print from="_" limit="" mode="meta" order="id"/>
</osm-script>

如果您想要一个数据子集,请查看此处的示例:http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide。警告:这对我来说太复杂了。祝你好运!