一、准备工作
1.安装PostgreSQL+PostGIS,版本不限(推荐最新版本)安装教程:Windows上安装、Linux上安装。
2.osm2pgsql工具,下载地址。
3.安装QGIS,方便查看数据,下载地址。
二、具体步骤
1.windows安装osm2pgsql
下载地址:Index of /download/windows (osm2pgsql.org)
md_17163b33.png
windows版解压即用:
md_89be5f81.png
2.下载OSM数据
1.下载全国数据量太大,以台湾省为例;下载地址:http://download.geofabrik.de/asia.html,下载.osm.pbf格式数据。
md_b6d50e50.png
2.将下载后的数据放在osm2pgsql根目录下备用:
md_657f29de.png
3.打开Postgres并创建数据库
1.创建名为:taiwan数据库
md_189a0f69.png
2.运行sql给该数据库添加扩展:
CREATE EXTENSION postgis;
CREATE EXTENSION hstore;
md_ae71c6c9.png
4.osm2pgsql导入数据到postgres
1.为了避免输入密码报错:ERROR: Cannot detect file format for 'XXXXX'. Try using -r
将postgres安装目录里的文件pg_hba.conf(文件路径:...\PostgreSQL\版本号\data)里面的md5,下图所示的两个md5改为trust:
md_bd07ec78.png
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.等待导入完成:md_b88abba3.png
md_665f32ad.png
md_665f32ad.png
5.查看数据
1.打开taiwan数据库查看数据表:
md_fc7c0279.png
表名 | 说明 |
---|---|
planet_osm_point | 点类型地理数据表 |
planet_osm_line | 线类型地理数据表 |
planet_osm_polygon | 面类型地理数据表 |
planet_osm_roads | 路线地理数据表 |
所有图层数据都在这四张表里面,nodes\rels\ways为导入过程生成的中间表,可以删除。
2.使用QGIS连接Postgres数据库查看数据
md_0c31447b.png
3.连接成功QGIS会显示四个图层:
md_d9bf35ad.png
4.添加图层查看数据:
planet_osm_line:
md_f9cfd5e2.png
planet_osm_point:
md_b2b55eef.png
planet_osm_polygon:
md_dd2a0513.png
planet_osm_roads:
md_afb28b9e.png
到此数据准备完成,后面将对数据进行查询生成不同的地图图层。