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 22 PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 07 PostgreSQL
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
Apr 12 PostgreSQL
PostgreSQL出现死锁该如何解决
May 30 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 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
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
thinkPHP查询方式小结
2016/01/09 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
Python3 元组tuple入门基础
2020/02/09 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
北京银河万佳Java面试题
2012/03/21 面试题
ddl,dml和dcl的含义
2016/05/08 面试题
静态成员和非静态成员的区别
2012/05/12 面试题
秋天的雨教学反思
2014/04/27 职场文书
授权委托书
2015/01/28 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python