获取城市中所有街道的正确立交桥涡轮查询是什么?

par*_*cer 3 openstreetmap overpass-api

我想使用http://overpass-turbo.eu/获取纽约市的所有街道。我试过这个:

[out:json]; area[name = "New York"]; (node(area)[highway=street]; ); out;
Run Code Online (Sandbox Code Playgroud)

然而它返回

{
  "version": 0.6,
  "generator": "Overpass API 0.7.55.1009 5e627b63",
  "osm3s": {
    "timestamp_osm_base": "2019-11-13T19:26:03Z",
    "timestamp_areas_base": "2019-11-13T18:05:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [



  ]
}
Run Code Online (Sandbox Code Playgroud)

没有元素。然而这个查询:

[out:json]; area[name = "New York"]; ( node(area)[amenity=cinema]; node(area)[highway=street]; ); out;
Run Code Online (Sandbox Code Playgroud)

为了获取街道电影院,可以使用:

{
  "version": 0.6,
  "generator": "Overpass API 0.7.55.1009 5e627b63",
  "osm3s": {
    "timestamp_osm_base": "2019-11-13T19:29:02Z",
    "timestamp_areas_base": "2019-11-13T18:05:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "node",
  "id": 344994897,
  "lat": 41.7680892,
  "lon": -73.9291000,
  "tags": {
    "amenity": "cinema",
    "created_by": "Potlatch 0.10f",
    "name": "Roosevelt Theater"
  }
},
...
Run Code Online (Sandbox Code Playgroud)

我应该如何修改初始查询来获取街道?

sca*_*cai 6

您的查询中有两个错误。

错误1:高速公路=街道

这个标签从哪里来?不是keystreet的有效值。事实上,由于您想要获取所有街道,因此您必须完全省略该值并仅查询.highwayhighway

错误2:节点()

道路不是节点,而是途径。所以你必须改为查询way(area)[...]。这还需要一个向上递归步骤(>;)来检索这些路的所有节点。

更正查询

[out:json]; area[name = "New York"]; (way(area)[highway]; ); (._;>;); out;
Run Code Online (Sandbox Code Playgroud)