6

我正在尝试查询特定区域的酒店。不幸的是,我需要查询节点和方式,因为有些酒店仅存储为方式,有些则存储为节点。

http://overpass.osm.rambler.ru/cgi/interpreter?data=%28way[tourism~hotel]%28around:5000,50.10707,8.76040%29%29;out;

方式查询的结果不包含任何坐标,只有很多节点引用:

<nd ref="1438833423"/>

有没有办法在输出中包含节点的坐标,或者必须为每个节点启动大量额外的查询?

汤姆

4

2 回答 2

13

是的,有几种方法也可以通过 Overpass API 获取非节点特征的几何图形。最简单的可能是使用center输出模式(替换out;out center;): http: //overpass-turbo.eu/s/4O4。其他选项是在递归步骤中获取节点引用:http: //overpass-turbo.eu/s/4O5或使用完整几何输出模式

PS:不要忘记,酒店也可以映射为 OSM 中的(多面体)关系,而不仅仅是节点或方式。

于 2014-08-31T13:30:27.743 回答
3

死灵术。

并实际回答这个问题:

[out:json];
way(29858799);
out ids geom;

这将以所选方式为您提供每个点的几何形状。

{
  "version": 0.6,
  "generator": "Overpass API",
  "osm3s": {
    "timestamp_osm_base": "2017-10-06T13:59:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "way",
  "id": 29858799,
  "bounds": {
    "minlat": 47.3604067,
    "minlon": 8.5342631,
    "maxlat": 47.3612503,
    "maxlon": 8.5352457
  },
  "geometry": [
    { "lat": 47.3612503, "lon": 8.5351944 },
    { "lat": 47.3612252, "lon": 8.5342631 },
    { "lat": 47.3610145, "lon": 8.5342755 },
    { "lat": 47.3610212, "lon": 8.5345227 },
    { "lat": 47.3606405, "lon": 8.5345451 },
    { "lat": 47.3606350, "lon": 8.5343411 },
    { "lat": 47.3604067, "lon": 8.5343545 },
    { "lat": 47.3604120, "lon": 8.5345623 },
    { "lat": 47.3604308, "lon": 8.5352457 },
    { "lat": 47.3606508, "lon": 8.5352328 },
    { "lat": 47.3606413, "lon": 8.5348784 },
    { "lat": 47.3610383, "lon": 8.5348551 },
    { "lat": 47.3610477, "lon": 8.5352063 },
    { "lat": 47.3612503, "lon": 8.5351944 }
  ]
}

  ]
}

https://overpass-turbo.eu/

此处列出了 out 的所有选项:
https ://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Print_.28out.29

于 2017-10-06T14:06:11.583 回答