Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法

时间:2021-03-16 12:34:59

最近遇到将OSM中的数据导入到Postgres中的问题,查找资料后,发现资料说的并不明白,经过各种搜索尝试,终于导入成功,记录如下。
1、将osm2pgsql文件夹放到C盘根目录下。
(osm2pgsql下载地址http://download.csdn.net/detail/qq_31709249/9858302一定用这个,不然有可能出错)
2、在OSM官网上下载一些数据,将下载的map.osm文件放进C盘的osm2pgsql夹下。
Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法
3、 更改Postgres的配置文件
在Postgres的安装目录下(如果是默认安装的话,是在C:\Program Files
\PostgreSQL\9.6\data目录下),找到pg_hba.cong文件,用记事本打开。更改其中的内容如下(将图1中的改为图2):
Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法
Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法
4、 创建数据库,比如创建一个pgrout的数据库:

CREATE DATABAS pgrout;

5、 连接到pgrout数据库,并增加PostGIS扩展:

\c pgrout
CREATE EXTENSION postgis;

6、 打开windos命令行(win+R键,输入cmd)
Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法

7、 将路径转到osm2pgsql目录下。在命令行中输入:

cd C:\osm2pgsql

8、 将OSM数据转到postgres数据库中。在windows命令行中输入:

osm2pgsql -d pgrout -U postgres -W -H localhost -P 5432 -S “C:\osm2pgsql\ default.style” map.osm

其中,pgrout是第4步创建的数据库的名字,map.osm是在OSM官网上下载的osm文件的名字(注意一定要放在C:\osm2pgsql目录下)
如果没问题的话,windows命令行在输入上面的命令后,显示的内容应该是:
Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法
打开QGIS,连接pgrout数据库,可以看到,数据已经导入:Windows下利用osm2pgsql将OSM数据导入到Postgres中的方法