使用Overpass API在OpenStreetMap中分组节点

时间:2014-10-23 18:12:55

标签: openstreetmap overpass-api

Hy.I想查询某些区域的节点。例如:如何获得给定区域的所有节点(例如峰值)(例如,行政边界 - 国家)。

像加入SQL一样:     SELECT n。*,a.name来自节点n LEFT JOIN区域a ON n.area_id = a.id WHERE n.type =“peak”

Resoult会是这样的:

{ features: [
 { 
   type: "node:",
   area: "slovenia"
   properties: {....},
   geometry: {...}
 },
 ...
]}

或者也许:

{ areas: [
 slovenia: {
  nodes: [
  { 
   type: "node:",
   area: "slovenia"
   properties: {...},
   geometry: {...}
  },
  ...
  ]
 },
 ...
]}

这甚至可能吗?或者我应该首先对所有区域进行1次查询,然后为每个区域进行另一次查询?

1 个答案:

答案 0 :(得分:3)

区域支持区域尚未正式提供(请参阅this Github pull request了解将来可能会出现的一些想法),但您可以使用以下帮助页面中描述的方法:

https://help.openstreetmap.org/questions/35976/add-reverse-geocoding-information-to-the-overpass-resulting-set

特别建议您查看以下查询:http://overpass-turbo.eu/s/4FJ

它适用于单个查询,但会将标志帖与所有区域混合使用此标志帖。您应该可以轻松地将其调整为您的标签/区域。请注意,可能需要对结果进行一些后处理。

Github pull request中也可能描述了您正在寻找的最接近的事物。这将打印该区域中所有节点后面的区域。但正如我所提到的,这只会在将来某个时候出现。

示例输出:

@oname  @id     name
area    3600062387      Landkreis Merzig-Wadern
node    313138635       
node    313150002       
node    313460474       
node    315050154       
node    431311279       
...