PostGIS的安装与初步使用

article/2025/9/29 0:03:46

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

目录

 

一、安装PostGIS

    1.下载安装程序

    2.安装PostgreSQL

二、创建空间数据库

    1.打开pgAdmin 4

    2.登录到服务器

    3.创建空间数据库

三、导入空间数据

    1.获取数据

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

    3.导入空间数据

    4.查看导入的空间数据


一、安装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。

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

二、创建空间数据库

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

    1.打开pgAdmin 4

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

    2.登录到服务器

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

    3.创建空间数据库

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

三、导入空间数据

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

    1.获取数据

    数据地址:https://pan.baidu.com/s/1WX3uzeIoYY0i7lsE6F6FyA 

    本实践使用的数据位于下载文件的"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%'

    查询结果如下图所示,得知该空间数据的SRID26910

    3.导入空间数据

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

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

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

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

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

    4.查看导入的空间数据

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

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

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


http://chatgpt.dhexx.cn/article/cZZMOaYP.shtml

相关文章

PostGIS(1):PostGIS概述

作为对象关系型数据库PostGreSQL的拓展模块,PostGIS可用于存储GIS数据,并提供了对基于GiST的R树索引支持、以及面向GIS对象的分析和处理相关的函数。 以下是PostGIS官网对其特征的介绍, (1) 先看一下百度对PostGIS的介…

PostGIS总结

PostGreSQL(三)PostGISPostGreSQL(四)PostGIS-空间数据存储PostGreSQL(五)PostGIS-常用函数PostGreSQL(六)PostGIS-空间连接和空间索引PostGreSQL(七)PostGIS…

postgis学习

以后估计会长期从事gis相关的工作,postgis作为一款功能比较强大的gis数据库还是需要好好学习一下的。虽然几何数据存储用任何一种类型的数据库都可以自行实现,但也仅仅只是存储,后续的坐标转换、空间分析等功能如果都要一一自己实现&#xff…

【笔试题】求最小公倍数 C++(两种方法)

题目 本题链接:求最小公倍数 正整数A和正整数B 的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。 输入描述: 输出描述: 示例1: 解题思路一: 暴力破解 …

多个数求最小公倍数详解!

最小公倍数 既然想算最小公倍数,首先要清楚最小公倍数的求法,还有最大公约数的求法 最小公倍数*最大公约数两数乘积 有了公式,我们很清楚可以知道了,只要有最大公约数就可以求出最小公倍数,因为两数乘积肯定是已知的&a…

最大公约数(GCD) 与 最小公倍数(LCM)的 定义、关系、求法

最大公约数 与 最小公倍数 约数 和 倍数最大公约数最小公倍数 最大公约数与最小公倍数的关系求最大公约数、最小公倍数例一例二 约数 和 倍数 如果数 a a a能被数 b b b整除, a a a就叫做 b b b的倍数, b b b就叫做 a a a的约数。 约数和倍数都表示一个…

最大公约数和最小公倍数

一、求最大公因数的三种方法: 最大公因数定义: (最大公约数、最大公因子):指两个或多个整数共有约数中最大的一个。 最小公倍数定义: 两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。 ①辗转相除法&#x…

最大公约数和最小公倍数的关系

联系: 最大公约数: 指两个或多个整数共有的约数中最大的那个 最小公倍数: 指两个或多个整数共有的倍数中最小的那个 以两个整数为例: 最大公约数表示为:(a,b) 最小公倍数表示为:[a&#xff0…

公约数(也叫公因数)|公倍数 |小知识|Golang

一、最大公约数(也叫公因数) 两个数的 最大公约数 是能够被两个数整除的最大正整数。 举例: 3 和 6 的最大公约数是3。“6和3的最大公因数是3。 6的因数有1,2,3,6,3的因数有1,3。两个数的最大公约数是能够被两个数整除的最大整数…

线性代数学习笔记——第六十九讲——正交向量组与标准正交基

1. 正交向量组的定义 2. 正交的判定 3. 正交向量组必然线性无关,线性无关向量组未必是正交向量组 4. 正交向量组求解示例 5. 标准正交向量组的定义

线性空间标准正交基的构造——Schmidt正交化

证明: 两两正交的一组向量必然线性无关 线性空间的标准正交基定义 (定义摘自《矩阵论》,程云鹏,1999年第2版,p88) 下面的定理证明了欧式空间一定存在标准正交基,其证明过程可以看作把任意一组基化成标准正交基的算法&#xff0…

Schmidt正交化(正交规范化方法)

设有向量α1,α2...αn,则正交规范化方法为 ... 其中,括号内是指做内积运算,即((x1,x2,...xn),(y1,y2...yn))x1*y1x2*y2...xn*yx 然后,再将每个向量单位化、 即 最后得到的一系列γ组成的向量组就正交且均为单位向量

【矩阵论笔记】Schmidt正交化、标准正交基

正交定义 正交例题 正交向量组 标准正交基 Schmidt正交化 例题

正交基函数

SH光照论文需要知道基函数(basis functions)知识。基函数就是小片的信号,可以被缩放、组合来产生原函数的近似,计算多少基函数需要被加到结果中的过程被称为投影(projection)。通过基函数估计原函数&#x…

第十章 正交基和标准正交基

10.1正交基 10.2一维投影 10.3高维投影 10.4标准正交基的性质 10.5矩阵的QR分解 10.6总结

施密特正交化

定义 施密特正交化(Schmidt orthogonalization)是求欧氏空间正交基的一种方法。从欧氏空间任意线性无关的向量组α1,α2,……,αm出发,求得正交向量组β1,β2,……,βm&…

线性代数学习之正交性,标准正交矩阵和投影

正交基和标准正交基: 前言: 经过上一次线性代数学习之向量空间,维度,和四大子空间的学习,对于空间的概念已经有了非常深刻的认识了,而描述空间很重要的方式除了维度以外,那就是空间的基了&…

【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(8):标准正交基与Gram-Schmidt过程

目录 前言往期文章2.2 标准正交基与Gram-Schmidt过程2.2.1 标准正交基定义2.4定理2.2.1定义2.5 2.2.2 求标准正交基的Schmide方法定理2.2.2举例 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指…

c语言实现向量组的标准/规范正交基(施密特正交化)

问题:任意一个向量组求标准正交基,尽量用C/C。 思路:下面是我找的课本上面的算向量组标准正交基的方法。第一步,用施密特正交化方法,使向量组正交;第二步,将向量组各向量单位化。 代码实现&a…

正交基

规范正交基是n维欧式空间V中n个两两正交的非零单位向量组成的一个规范正交组。V中的任意向量ξ都可以由V的一组规范正交基{a1,a2,…,an}唯一表示ξx11x22…xnn,x1,x2,…,xn是ξ关于基{a1,a2,…,an}的坐标,由于{a1,a2&a…