PostGIS导入导出ESRI Shapefile数据
PostGIS作为PostgreSQL数据库的空间扩展,提供了对空间数据管理的支持。对于空间矢量数据,PostGIS提供了Geometry和Geography俩种类型用于空间对象的存储,Geometry使用笛卡尔坐标系,而Geography使用球面坐标系(默认是WGS84坐标系)。对于空间栅格数据,则提供了Raster类型。 这里介绍如何导入我们常用的ESRI Shapefile数据到PostgreSQL数据库中,我们可以使用PostGIS提供的shp2pgsql和pgsql2shp工具进行导入和导出操作,还可以使用GDAL库提供的ogr2ogr工具,ogr2ogr工具支持更加多样的数据格式。 我的实验环境如下: 我们使用的数据是全球大洲的一个矢量数据,坐标类型为WGS84。数据下载链接:百度云下载 在Ubuntu中安装PostgreSQL和PostGIS非常简单: sudo apt-get install postgresql
然后,使用如下命令添加UbuntuGIS的PPA用于安装PostGIS扩展。 sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
最后,使用如下命令安装PostGIS: sudo apt-get install postgis
安装好了以后,使用 进入psql交互环境以后,我们首先创建数据库。 CREATE DATABASE postgis_in_action;
然后再创建一个schema,以后我们可以将我们创建的table都存储在我们的schema中,而不是默认的public schema中。 CREATE SCHEMA staging;
然后,切换到我们新建的postgis_in_action数据库中。 c postgis_in_action
然后在postgis_in_action数据库中启用PostGIS扩展。 CREATE EXTENSION postgis;
可以通过 创建好了数据库以后,我们可以使用 接下来就是使用shp2psql命令行工具导入数据了,命令如下: shp2pgsql -s 4326 -I "continent" staging.world_continent | psql -h localhost -p 5432 -d postgis_in_action -U postgres -W
首先说明的是shp2pgsql的参数(具体参数使用 执行过程如下: 执行成功以后,我们可以进入psql从数据库中查看数据。命令如下: 此外,我们还可以使用 下面说说数据的导出,我们可以使用psql2shp工具导出数据为Shapefile文件。命令如下: pgsql2shp -f ~/Desktop/continent -h localhost -p 5432 -u postgres -P [passworld] postgis_in_action staging.world_continent
最后,看看如何使用QGIS直接连接PostgreSQL数据库进行数据显示。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |