1

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

类似于 SQL 中的连接:SELECT n.*, a.name from node n LEFT JOIN area a ON n.area_id = a.id WHERE n.type = "peak"

结果将类似于:

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

或者可能:

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

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

4

1 回答 1

3

区域支持尚未正式提供(请参阅此 Github 拉取请求以了解未来可能的样子),但您可以使用以下帮助页面中描述的方法:

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       
...
于 2014-10-24T06:01:09.330 回答