PostGIS的安装与入门使用指南


Posted in PostgreSQL onJanuary 18, 2022

想学习postgis推荐看我翻译的官方教程文档:https://blog.csdn.net/qq_35732147/article/details/85256640

一、安装PostGIS

在安装PostGIS前首先必须安装PostgreSQL,然后再安装好的Stack Builder中选择安装PostGIS组件。

1.下载安装程序

PostgreSQL安装文件下载地址是https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

这里使用的PostgreSQL版本是9.6。

2.安装PostgreSQL

双击下载的文件,所有设置都使用默认设置即可,只是需要设置超级用户postgres的密码。

3.安装PostGIS

安装PostgreSQL安装完成后,提示运行Stack Builder。通过该工具安装PostGIS。

Stack Builder运行后,选择安装目标软件为PostgreSQL 9.6 on port 5432。然后在安装程序选择对话框中选择PostGIS 2.3。

PostGIS的安装与入门使用指南

PostGIS的安装与入门使用指南

然后Stack Builder会下载PostGIS 2.3的安装程序。下载后就会安装,在设置安装组件时,最好选择"Create spatial database",以便在创建数据库时可以以此作为模板。对于其他步骤的设置都选择默认值即可。

二、创建空间数据库

要创建与管理PostGIS空间数据库,可使用PostgreSQL提供的命令行或名为pgAdmin的图形化管理工具,此外像QGIS等GIS客户端软件也提供了管理插件。这里介绍如何使用pgAdmin 4来完成创建空间数据库以及在数据库中导入空间数据。

1.打开pgAdmin 4

打开位于"开始>所有程序>PostgreSQL 9.6"之中的pgAdmin 4

PostGIS的安装与入门使用指南

2.登录到服务器

打开pgAdmin 4之后,发现该程序已经将本地安装的PostgreSQL数据库服务器列在了服务器列表中,将其选中然后选择右键菜单的”连接“命令,以超级用户postgres及安装过程为该用户设置的密码连接数据库服务器。连接以后,将列出该服务器中包含的内容,如下图所示,包含数据库、表空间和组角色等。

PostGIS的安装与入门使用指南

3.创建空间数据库

选中数据库服务器内容中的数据库,然后选择其右键菜单中的”新建数据库“命令,打开”新建数据库“对话框。首先在”属性“面板中设置数据库名称,因为本书将使用加拿大温哥华市的数据,因此将数据库名称设置为"Vancouver";并将所有者设置为”postgres"。然后切换到“定义”面板中,将模板设置为"postgis_21_sample"。设置如下图所示:

PostGIS的安装与入门使用指南

PostGIS的安装与入门使用指南

三、导入空间数据

经过前面的步骤,已经建好了功能完善的但还没有空间数据的空间数据库,接下来的工作是将空间数据导入到刚建立的数据库中。而最简单的方式是导入Shapefile格式的空间数据。PostGIS提供了"PostGIS Shape Import/Export Manager"图形化界面工具来帮助完成Shapefile空间数据的导入与导出。

1.获取数据

本实践使用的数据位于下载文件的"Data\Vancouver"文件夹中,名为Vancouver.shp。

2.确定空间数据的投影系统

在使用PostGIS Shapefile Import/Export Manger工具导入空间数据时,需要明确设置空间数据的SRID,即空间引用标识符。

要确定空间数据的SRID,有好几种方式。一种是利用QGIS来确定,另一种是利用pgAdmin来确定。

在"Data\Vancouver"文件夹中有一个名为Vancouver.prj的文本文件。.prj文件指定了数据的投影。用文本文件工具打开该文件,可见如下一些文本:

PROJCS["NAD_1983_UTM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]

在pgAdmin 4中,打开查询工具,在SQL编辑器中输入如下SQL语句:

select srid, srtext, proj4text from spatial_ref_sys where srtext ILIKE '%NAD83 / UTM zone 10N%'

查询结果如下图所示,得知该空间数据的SRID为26910。

PostGIS的安装与入门使用指南

3.导入空间数据

打开位于“开始>所有程序>PostGIS 2.3 bundle for PostgreSQL”之中的PostGIS Shapefile Import/Export Manager。

首先单击"View connection details"按钮,打开"PostGIS connection"对话框,输入用户名"postgres"及其对应的密码,设置连接的数据库为Vancouver,如下图所示:

PostGIS的安装与入门使用指南

连接数据库之后,单击"Add file"按钮,加入Vancouver.shp文件,并将其SRID设置为"26910",如下图所示。这一步绝对不能省略,否则不能正确导入数据。

PostGIS的安装与入门使用指南

最后单击"Import"按钮导入数据。

可以在pgAdmin 4中通过查看Vancouver数据库在"架构“的public数据表中是否增加了Vancouver来判断数据是否成功导入。

4.查看导入的空间数据

PostGIS并没有提供工具以地图的方式查看空间数据,不过我们可以使用QGIS等客户端GIS来查看。

打开QGIS,在窗口左边的”浏览器“中选择PostGIS,然后选择其右键菜单中的"新建连接”命令,打开“创建一个新的PostGIS连接”对话框,按下图设置参数,最后单击“确定”按钮连接数据库。

PostGIS的安装与入门使用指南

建立连接以后,便可以在“浏览器”中列出数据库服务器中所有的空间图层,如下图所示,选中某图层,将其拖入图层控制器中便可在地图中打开该空间数据。

PostGIS的安装与入门使用指南

到此这篇关于PostGIS的安装与入门使用指南的文章就介绍到这了,更多相关PostGIS安装使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PostgreSQL 相关文章推荐
PostgreSQL存储过程实用脚本(二):创建函数入门
Apr 05 PostgreSQL
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
May 21 PostgreSQL
postgres之jsonb属性的使用操作
Jun 23 PostgreSQL
postgresql 删除重复数据案例详解
Aug 02 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
PostgreSQL自动更新时间戳实例代码
Nov 27 PostgreSQL
基于PostgreSQL/openGauss 的分布式数据库解决方案
Dec 06 PostgreSQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
Jan 18 PostgreSQL
Rust 连接 PostgreSQL 数据库的详细过程
Jan 22 PostgreSQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
Apr 12 PostgreSQL
postgreSQL数据库基础知识介绍
Apr 12 PostgreSQL
PostgreSQL出现死锁该如何解决
May 30 PostgreSQL
PostgreSQL13基于流复制搭建后备服务器的方法
基于PostgreSQL/openGauss 的分布式数据库解决方案
PostgreSQL自动更新时间戳实例代码
Nov 27 #PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 #PostgreSQL
postgresql 删除重复数据案例详解
Aug 02 #PostgreSQL
PostgreSQL解析URL的方法
Aug 02 #PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 #PostgreSQL
You might like
学习使用PHP数组
2006/10/09 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
javascript 随机展示头像实现代码
2011/12/06 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
英语翻译系毕业生求职信
2013/09/29 职场文书
简短的公司员工自我评价分享
2013/11/13 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
社区党员先进事迹
2014/01/22 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
大学生毕业求职信
2014/06/12 职场文书
论群众路线学习笔记
2014/11/06 职场文书
毕业生见习报告总结
2014/11/08 职场文书
迎新年主持词
2015/07/06 职场文书
尝试使用Python爬取城市租房信息
2022/04/12 Python
nginx之内存池的实现
2022/06/28 Servers