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将数据加载到buffer cache中操作方法
Apr 16 PostgreSQL
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
May 21 PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
PostgreSQL自动更新时间戳实例代码
Nov 27 PostgreSQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
Jan 18 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL出现死锁该如何解决
May 30 PostgreSQL
postgresql中如何执行sql文件
May 08 PostgreSQL
postgresql之greenplum字符串去重拼接方式
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时间戳转换代码详解
2019/08/04 PHP
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
python 多线程应用介绍
2012/12/19 Python
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
python查看微信好友是否删除自己
2016/12/19 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
英国钻石公司:British Diamond Company
2020/02/16 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
C语言开发工程师测试题
2016/12/20 面试题
盛大二次面试题
2016/11/18 面试题
副护士长竞聘演讲稿
2014/04/30 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
员工2014年度工作总结
2014/12/09 职场文书
党员先进事迹材料
2014/12/19 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
python b站视频下载的五种版本
2021/05/27 Python
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
Python如何将list中的string转换为int
2022/07/15 Ruby