PostGIS数据库搭建与gdb数据导入

PostGIS数据库

    • PostGIS数据库搭建
      • 一、PostGIS安装
        • 1.1 PostgreSQL安装
        • 1.2 PostGIS安装
        • 1.3 PgAdmin
      • 二、一键导入.gdb数据
        • 2.1 OSGeo4w安装GDAL
        • 2.2 验证安装
        • 2.3 一键导入
      • 三、QGIS连接PostGIS数据库
      • 四、常见问题
        • 4.1 OSGeo4w换源
        • 4.2 一键导入报错

PostGIS数据库搭建

暑期接了一个实习的活,主要是关于QGIS这个软件的一些功能开发(说是开发其实是批处理)。不过得先会走才能跑,这个软件本身还没搞明白就想着开发是不行的。同事发来了一些gdb格式的样例数据直接就给我整蒙了,google了一番之后有了这篇博客,我将叙述如何将gdb格式的数据导入PostGIS数据库,然后在QGIS中连接。

一、PostGIS安装

1.1 PostgreSQL安装

PostGIS是PostgreSQL的一个插件,因此我们需要首先配置PostgreSQL环境。进入下载地址,查找对应自己系统的版本进行安装即可,注意要设置管理员用户密码。

1.2 PostGIS安装

安装完PostgreSQL后,会提示运行Stack Builder。这个工具可以安装PostGIS,但是它使用的下载源速度很慢,挂梯子可以解决这个问题,但更好的选择是去官网直接下载。

手动安装的过程中,首先要注意安装路径,必须是PostgreSQL的根目录。其次在设置安装组件时,最好选择“Create spatial database”,建立一个模板,以便之后我们据此创建数据库,当然这不是必须的。

1.3 PgAdmin

pgAdmin是PostgreSQl的图形化管理工具,win+s搜索后即会开启服务,并在浏览器中打开可视化界面。

PostGIS数据库搭建与gdb数据导入_第1张图片

开启服务会要求输入管理员密码,第一次打开数据库(Servers)也会要求输入密码。初次使用时可能是英文界面,我们可以在:File-Preference-Miscellaneous-Language中修改为Chinese。

点击Servers-数据库,可以看到一个默认的postgres数据库,架构(schema)中就是常见的关系数据库中的一些属性。一般情况下我们对默认数据库不感兴趣,所以右键点击数据库,可以新建一个:

PostGIS数据库搭建与gdb数据导入_第2张图片

成功创建数据库之后,我们点击架构-public,然后点击查询工具:

PostGIS数据库搭建与gdb数据导入_第3张图片
在右侧出现的查询编辑器中输入下列语句:

CREATE EXTENSION postgis;	# 启用postgis插件

SELECT postgis_full_version();	 # 用来检查是否安装了postgis

如果输出了PostGIS的版本,那么我们就成功的为这个数据库开启了postGIS扩展,至此PostGIS的安装就完成了。

二、一键导入.gdb数据

2.1 OSGeo4w安装GDAL

gdb是arcGIS的专有空间数据库格式,postGIS本身是不支持的,这里我们使用一个辅助软件,OSGeo4W中的GDAL来完成一键导入的功能。OSGeo4w是一系列GIS工具的集合。实际上,我强烈推荐用OSGeo4W来完成QGIS的全套安装,否则后续配置环境变量是一个非常痛苦的过程,如果你已经用QGIS独立安装包安装了,那么看我之后的博客有解决环境变量的办法。

OSGeo4W的官网只提供了在线安装器的下载,这个安装器中提供了4个默认的下载源,但是速度都非常慢,因此必须要挂代理进行下载,这里我给出挂梯子的流程:

PostGIS数据库搭建与gdb数据导入_第4张图片

我们首次安装需要选择第一个,Express Desktop Install,但是由于我们需要先挂代理,所以选择Advanced Install进行设置。点击下一步后,选择Install from Internet,然后是选择安装路径和安装用户,再下一步是选择下载的临时存储地址,再下一步就是我们设置代理的地方了,启用HTTP代理后,不断上一步直到回到上图界面,选择Express Desktop Install,下一步。

PostGIS数据库搭建与gdb数据导入_第5张图片

我们这里只需要安装GDAL,跟着流程安装完成,然后我们再次打开安装器,因为GDAL默认是不安装gdb的驱动的。这次我们选择Advanced Install,一直到下图位置:

PostGIS数据库搭建与gdb数据导入_第6张图片
搜索GDAL,并在Libs中勾选标红的gdb driver,安装即可。

2.2 验证安装

win+s打开OSGeo4w Shell,然后输入:ogrinfo --formats

PostGIS数据库搭建与gdb数据导入_第7张图片
如果返回结果中有上图标红的FileGDB,则证明安装成功

2.3 一键导入

确保在pgAdmin中建立了新的数据库,并且启用了postgis插件后,在OSGeo4W Shell中输入以下语句:

ogr2ogr -f "PostgreSQL" PG:"host=localhost port=5432 user=postgres password=xxx dbname=yyy" D:/data/geodata.gdb -overwrite -progress --config PG_USE_COPY YES

其中xxx为管理员密码,yyy为数据库名称,gdb文件夹的路径需根据实际情况修改。后面加入的三个参数意义如下:

-overwrite 表示会覆盖已经存在的记录

-progress 表示显示进度

–config PG_USE_COPY YES 将极大改善导入速度

三、QGIS连接PostGIS数据库

打开QGIS后,在Browser中找到PostGIS,右键新建连接。在弹出的对话框中输入数据库的相应配置即可:

PostGIS数据库搭建与gdb数据导入_第8张图片

四、常见问题

4.1 OSGeo4w换源

即使挂了梯子,在线安装过程的速度也可能比较慢,软件自身提供的4个源中,推荐使用第二个:http://download.osgeo.org,或者使用国内的镜像源,但如果误选了其他源而对其速度不满意,那么我们只需要在进行到Agreement协议打勾这一步时,按上一步,即可重新选择源。

4.2 一键导入报错

如果执行一键导入的代码之后,有如下提示:

function addgeometrycolumn does not exist

则说明目标数据库没有启用PostGIS,或者PostGIS的安装不完整。请在建立数据库时务必启用postGIS插件。

你可能感兴趣的:(QGIS,python,数据库,qgis,gis)