我已经从http://download.geofabrik.de/europe.html下载了英国的 .osm.pbf 文件,我希望能够提取每个节点的所有经纬度。这可能吗?
如果我能把它变成某种python格式那就太好了
我已经从http://download.geofabrik.de/europe.html下载了英国的 .osm.pbf 文件,我希望能够提取每个节点的所有经纬度。这可能吗?
如果我能把它变成某种python格式那就太好了
您可以使用pyosmium解析 .osm.pbf 文件。
这个简单的例子只是打印出每个有名字标签的节点的位置和名字:
import osmium
import sys
class NamesHandler(osmium.SimpleHandler):
def node(self, n):
if 'name' in n.tags:
print(f'{n.location}: ' + n.tags['name'])
def main(osmfile):
NamesHandler().apply_file(osmfile)
return 0
if __name__ == '__main__':
if len(sys.argv) != 2:
print("Usage: python %s <osmfile>" % sys.argv[0])
sys.exit(-1)
exit(main(sys.argv[1]))
当然,您可能希望根据您的用例对数据进行更复杂的处理。查看文档以获取基本使用教程和参考,以及pyosmium GitHub 存储库的 README 以获取安装说明。