一、准备工作
1.安装PostgreSQL+PostGIS,版本不限(推荐最新版本)安装教程:Windows上安装、Linux上安装。
2.osm2pgsql工具,下载地址。
3.安装QGIS,方便查看数据,下载地址。
二、具体步骤
1.windows安装osm2pgsql
下载地址:Index of /download/windows (osm2pgsql.org)
windows版解压即用:
2.下载OSM数据
1.下载全国数据量太大,以台湾省为例;下载地址:http://download.geofabrik.de/asia.html,下载.osm.pbf格式数据。
2.将下载后的数据放在osm2pgsql根目录下备用:
3.打开Postgres并创建数据库
1.创建名为:taiwan数据库
2.运行sql给该数据库添加扩展:
CREATE EXTENSION postgis;
CREATE EXTENSION hstore;
4.osm2pgsql导入数据到postgres
1.为了避免输入密码报错:ERROR: Cannot detect file format for 'XXXXX'. Try using -r
将postgres安装目录里的文件pg_hba.conf(文件路径:...\PostgreSQL\版本号\data)里面的md5,下图所示的两个md5改为trust:
2.在osm2pgsql根目录打开cmd,运行命令:
osm2pgsql -s -U postgres -H 127.0.0.1 -P 5432 -d taiwan --hstore --style default.style --tag-transform style.lua --cache 12000 taiwan-latest.osm.pbf
注意:-U 用户名 -W 密码 -d 数据库名,其他命名参考osm2pgsql常见命令。
3.等待导入完成:
5.查看数据
1.打开taiwan数据库查看数据表:
表名 | 说明 |
planet_osm_point | 点类型地理数据表 |
planet_osm_line | 线类型地理数据表 |
planet_osm_polygon | 面类型地理数据表 |
planet_osm_roads | 路线地理数据表 |
所有图层数据都在这四张表里面,nodes\rels\ways为导入过程生成的中间表,可以删除。
2.使用QGIS连接Postgres数据库查看数据
3.连接成功QGIS会显示四个图层:
4.添加图层查看数据:
planet_osm_line:
planet_osm_point:
planet_osm_polygon:
planet_osm_roads:
到此数据准备完成,后面将对数据进行查询生成不同的地图图层。