最近遇到一个问题,如何将OpenStreetMap的全部数据导入自己的PostgreSQL数据库。完整的.osm格式的OSM数据库副本有80G左右,即使是.pbf格式的也有40G左右的大小。最初想使用Shapfile格式文件导入PostGIS数据库,结果这种格式的只有国家级别的,下载和解压的速度也比较慢。最后还是使用了官方的osm2pgsql。这里简单介绍一下流程
环境准备
- PostgreSQL+PostGIS 网上教程很多
- osm2pgsql windows版,下载地址
- default.style文件,下载好后,把里面的#注释全部删掉
- 下载完整版pbf格式副本,下载地址
下载
- 将pbf文件和处理后的style放在解压缩后的osm2pgsql文件夹下,然后再文件夹下打开CMD命令窗口
![](https://img.haomeiwen.com/i19853754/2c1e8618492182fc.png)
- 在窗口中输入下面命令
osm2pgsql -d openstreet –U postgres -H localhost -P 5432 --slim -C 12000 --cache-strategy dense -S "F:\osm2pgsql\default.style" planet-latest.osm.pbf
其中
- -H是PostgreSQL 主机地址
- --cache-strategy dense是为大量数据采取的处理方式
-
然后命令窗口,提示输入Postgresql密码,输入正确,即开始存入数据
开始存入
接下来就是漫长的等待了
网友评论