使用OSM ID获取节点的坐标

时间:2019-03-15 10:11:17

标签: python openstreetmap

我是OSM API的新手,我想使用OSM ID获取坐标。在这个问题here中,由于我是初学者,所以我没有得到如何创建图形G的信息。我正在使用python从OSM API获取响应。 例如,当我们使用正确的ID:https://api.openstreetmap.org/api/0.6/node/1989098258访问此链接时,我们将得到一个包含所有所需内容的xml响应! 请给我一个有关如何使用节点API的好例子吗?

1 个答案:

答案 0 :(得分:0)

我找到了如何获取有关给定OSM节点的信息。 首先使用osmapi安装pip3软件包:

pip3 install osmapi

然后是一个节点id=1989098258 我们做

import osmapi as osm
api = osm.OsmApi() # this instantiate the OsmApi class,
# it has many function, we will use NodeGet function.
# For more detail about it check the doc
# http://osmapi.metaodi.ch/#osmapi.OsmApi.OsmApi.NodeGet
node = api.NodeGet(1989098258)
node # will return a dict object

对象node返回:

{'id': 1989098258,
 'visible': True,
 'version': 2,
 'changeset': 16442326,
 'timestamp': datetime.datetime(2013, 6, 6, 10, 11, 58),
 'user': 'wambacher',
 'uid': 201359,
 'lat': 24.3655948,
 'lon': 88.6279164,
 'tag': {}}

然后获取节点的经度和纬度:

node["lon"] # get longitude
node["lat"] # get latitude