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(实现代码)
Apr 22 PostgreSQL
Centos环境下Postgresql 安装配置及环境变量配置技巧
May 18 PostgreSQL
如何使用PostgreSQL进行中文全文检索
May 27 PostgreSQL
postgresql无序uuid性能测试及对数据库的影响
Jun 11 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
PostgreSQL出现死锁该如何解决
May 30 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 PostgreSQL
PostgreSQL之连接失败的问题及解决
May 08 PostgreSQL
postgresql中如何执行sql文件
May 08 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
CI配置多数据库访问的方法
2016/03/28 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
php解决安全问题的方法实例
2019/09/19 PHP
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
基于postman获取动态数据过程详解
2020/09/08 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
python 字符串只保留汉字的方法
2018/11/16 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
python pygame实现方向键控制小球
2019/05/17 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
Structs界面控制层技术
2013/10/11 面试题
公司行政经理岗位职责
2013/12/24 职场文书
优秀士兵先进事迹
2014/02/06 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
尼克胡哲观后感
2015/06/08 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
委托书范本格式
2019/04/18 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js