VR全景图片 正则表达式 深度图像 object go haskell datagridview yii routes handlebarsjs photoshop cs3 教程 jquery选择器找子元素 mysql批量更新数据 python使用教程 python语言入门 python创建数据库 python创建对象 python异常 python正则表达式例子 java数据 java函数 蓝牙运动耳机排行榜 rewritebase 千元以下最好的手机 workflow中文 苹果放大镜 抖音代码 python电子书 超过响应缓冲区限制 淘新闻下载 maya骨骼绑定教程 kms工具 方正兰亭大黑简体 只狼月隐糖 lol特效盒子 iar软件 upnp阻塞 剪影的意思 千兆网线做法 上网监控系统
当前位置: 首页 > 学习教程  > 编程语言

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

2020/7/24 9:47:29 文章标签:

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搜索后即会开启服务,并在浏览器中打开可视化界面。

pgAdmin

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

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

create_db

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

查询工具
在右侧出现的查询编辑器中输入下列语句:

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个默认的下载源,但是速度都非常慢,因此必须要挂代理进行下载,这里我给出挂梯子的流程:

OSGeo4W_setup

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

在这里插入图片描述

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

gdb_driver
搜索GDAL,并在Libs中勾选标红的gdb driver,安装即可。

2.2 验证安装

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

support_format
如果返回结果中有上图标红的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,右键新建连接。在弹出的对话框中输入数据库的相应配置即可:

连接配置

四、常见问题

4.1 OSGeo4w换源

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

4.2 一键导入报错

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

function addgeometrycolumn does not exist

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


本文链接: http://www.dtmao.cc/news_show_50145.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?