从立交桥中的节点 ID 获取经纬度 API

get latitude and longitude from node id in overpass API

我使用此查询从立交桥中的节点 ID 获取纬度和经度 API:

[out:json]; (
  node(2314028892);
  node(30223035);
  node(268195434);
  node(30223039);
); (._;>;); out;

我得到这个答案:

{
  "version": 0.6,
  "generator": "Overpass API 0.7.55.3 9da5e7ae",
  "osm3s": {
    "timestamp_osm_base": "2018-06-28T07:47:01Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "node",
  "id": 30223035,
  "lat": 52.2917680,
  "lon": 10.5265481
},
{
  "type": "node",
  "id": 30223039,
  "lat": 52.2894248,
  "lon": 10.5268394
},
{
  "type": "node",
  "id": 268195434,
  "lat": 52.2897618,
  "lon": 10.5267852
},
{
  "type": "node",
  "id": 2314028892,
  "lat": 52.2919739,
  "lon": 10.5265271,
  "tags": {
    "bus": "yes",
    "name": "Rühmer Weg",
    "network": "VRB",
    "operator": "Braunschweiger Verkehrs-GmbH",
    "public_transport": "stop_position",
    "ref": "464"
  }
}
  ]
}

答案中的元素似乎有不同的顺序。我想现在是否可以按照与查询中相同的顺序获得答案。 (首先是节点 2314028892,然后是 30223035,...)

有人知道我怎么能完成这个吗?

在每个查询语句后使用"out":

[out:json]; 
node(2314028892);out
node(30223035);out
node(268195434);out;
node(30223039);out;

出于性能原因,我建议您在 post 处理步骤中执行此操作。您已经知道正确的序列,因此您可以轻松地将其应用于查询结果。此外,您可以在单个查询中指定多个节点 ID 值:

[out:json]; node(id:2314028892, 30223035, 268195434, 30223039);out;

旁注:您也可以在查询中省略 (._;>;);。在节点的情况下不需要它。