PostGIS作为PostgreSQL数据库的空间扩展,提供了对空间数据管理的支持。对于空间矢量数据,PostGIS提供了Geometry和Geography俩种类型用于空间对象的存储,Geometry使用笛卡尔坐标系,而Geography使用球面坐标系(默认是WGS84坐标系)。对于空间栅格数据,则提供了Raster类型。
这里介绍如何导入我们常用的ESRI Shapefile数据到PostgreSQL数据库中,我们可以使用PostGIS提供的shp2pgsql和pgsql2shp工具进行导入和导出操作,还可以使用GDAL库提供的ogr2ogr工具,ogr2ogr工具支持更加多样的数据格式。
我的实验环境如下:
OS: Ubuntu 16.04 LTS
PostgreSQL:9.5.5 (安装好PostgreSQL以后可以使用psql --version
进行查看)
PostGIS: 2.2 (安装好PostGIS,并在数据库中启用PostGIS扩展以后,可以在psql命令行中使用SELECT PostGIS_Version();
或者SELECT PostGIS_Full_Version();
进行查看。
我们使用的数据是全球大洲的一个矢量数据,坐标类型为WGS84。数据下载链接:百度云下载
在Ubuntu中安装PostgreSQL和PostGIS非常简单:
首先,使用如下命令安装PostgreSQL:
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
安装好了以后,使用sudo -u postgres psql
命令可以进入psql交互环境。
可以使用SQL修改postgres用户的密码