PGSQL安装PostGIS扩展模块

一、PostGIS简介

1、PostGIS介绍

PostGIS是一个空间数据库,空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。

空间数据与数据库关联起来的三个要素:数据类型、索引和函数。

  • 空间数据类型:用于指定图形为点(point)、线(line)和面(polygon)
  • 多维度空间索引:被用于进行空间操作的高效处理(注意是多维度哦,而不是只有针对二维空间数据的索引)
  • 空间函数:构建于SQL语言中,用于进行空间属性和空间关系的查询

空间数据类型、空间索引和空间函数组合在一起,提供了灵活的结构用于空间数据库的性能优化和分析。

空间数据库将空间数据和对象关系数据库(Object Relational database)完全集成在一起。实现从以GIS为中心向以数据库为中心的转变。

PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的"企业级"特性以及开放源代码的标准。

参考文章:PostGIS教程一:PostGIS介绍:https://zhuanlan.zhihu.com/p/62034688

2、安装 PostGIS的目的

因为空间数据具有空间位置、空间关系、分类编码、海量数据等特征,所以一般的数据库管理系统无法储存空间数据,如PostgreSQL。

为了达到储存空间数据这个目的,就需要将普通数据库转变为空间数据库。那么具体如何解决这个问题呢?

“关系型数据库+空间数据引擎”通常是近年来由GIS厂商研发的一种中间件解决方案。用户将自己的空间数据交给独立于数据库之外的空间数据引擎,由空间数据引擎来组织空间数据在关系型数据库中的存储。当用户需要访问数据的时候,再通知空间数据引擎,由引擎从关系型数据库中取出数据,并转化为客户可以使用的方式。

而 PostGIS则在其中为空间数据引擎提供支持。它为PostgreSQL提供对空间数据类型、空间索引和空间函数等的空间信息服务,将PostgreSQL转变为可以储存空间数据的数据库。

简单来说,PostGIS仅仅只是PostgreSQL的一个插件,但是它将PostgreSQL变成了一个强大的空间数据库!PostGIS可以看作为空间数据进出该容器的转换通道,而关系型数据 PostgreSQL是存放空间数据的容器。

二、安装PostGIS

我们安装好 PostgreSQL数据库之后。下面为 PostgreSQL安装 PostGIS扩展模块。

1、PostGIS安装

PostGIS下载:http://download.osgeo.org/postgis/windows/

在这里插入图片描述

根据自己安装的 PostgreSQL版本来选择,因为本人安装的 PostgreSQL14,所以下面是对应 PostgreSQL14的window64位的安装包。

(1)双击安装包。

安装时我们勾选Create spatial database。表示创建一个空间数据库(postgis_34_sample),后面你不用时也可以删除它。

在这里插入图片描述

(2)选择安装路径时一定要保证与 PostgreSQL的安装路径保持一致

在这里插入图片描述

(3)需要验证 PostgreSQL的用户名和密码

在这里插入图片描述

在这里插入图片描述

(4)其他就一路next即可,安装成功之后打开pgAdmin查看数据库建立并连接成功。

这里我们就看到创建的 postgis_34_sample空间数据库。

在这里插入图片描述

2、数据库添加扩展

给指定的数据库添加扩展时执行下面语句。

CREATE EXTENSION postgis;

我们创建一个 test_gis数据库,并给它添加 PostGIS扩展,执行上面语句。执行成功之后,public中的表会多一个 spatial_ref_sys表(不要删除)。

在这里插入图片描述

3、验证

执行下面测试语句不报错即可。

SELECT st_asText(st_geomfromtext('POINT(114 50)', 4326));SELECT ST_SetSRID(ST_Point(-87.71,43.741), 4326), ST_GeomFromText('POINT(-87.71 43.741)', 4326);

在这里插入图片描述

三、常用的空间数据函数

PostGIS 提供了丰富的空间数据函数,用于存储、分析和处理空间数据。

以下是一些常用的空间数据函数以及它们的作用:

1、几何对象创建函数:

  • ST_GeomFromText(wkt, srid):从 Well-Known Text (WKT) 格式的文本创建几何对象。可以选择性地指定坐标系标识。
  • ST_GeomFromEWKT(ewkt):从扩展的 Well-Known Text (EWKT) 格式的文本创建几何对象,包括坐标系信息。
  • ST_Point(x, y):创建一个点几何对象。
  • ST_LineString(points):创建一个线几何对象。
  • ST_Polygon(rings):创建一个多边形几何对象。

2、几何对象检查函数:

  • ST_IsValid(geometry):检查几何对象是否有效。
  • ST_IsEmpty(geometry):检查几何对象是否为空。
  • ST_GeometryType(geometry):返回几何对象的类型。

3、几何对象转换函数:

  • ST_AsText(geometry):将几何对象转换为 Well-Known Text (WKT) 格式的文本。
  • ST_AsEWKT(geometry):将几何对象转换为扩展的 Well-Known Text (EWKT) 格式的文本。
  • ST_SetSRID(geometry, srid):设置几何对象的坐标系标识。

4、空间关系函数:

  • ST_Intersects(geom1, geom2):检查两个几何对象是否相交。
  • ST_Contains(geom1, geom2):检查一个几何对象是否包含另一个几何对象。
  • ST_Distance(geom1, geom2):计算两个几何对象之间的距离。

5、空间分析函数:

  • ST_Buffer(geometry, distance):对几何对象进行缓冲区分析。
  • ST_Intersection(geom1, geom2):计算两个几何对象的交集。
  • ST_Union(geom1, geom2):计算两个几何对象的并集。

6、几何对象编辑函数:

  • ST_Transform(geometry, srid):将几何对象转换到指定的坐标系。
  • ST_Simplify(geometry, tolerance):对几何对象进行简化处理。
  • ST_Centroid(geometry):计算几何对象的质心。

7、几何对象测量函数:

  • ST_Area(geometry):计算几何对象的面积。
  • ST_Length(geometry):计算几何对象的长度。
  • ST_Perimeter(geometry):计算几何对象的周长。

8、几何对象索引函数:

  • ST_GeoHash(geometry):计算几何对象的 GeoHash 值。
  • ST_MakeEnvelope(minx, miny, maxx, maxy, srid):创建一个表示矩形范围的几何对象。

9、几何对象集合函数:

  • ST_Collect(geometry1, geometry2):将多个几何对象合并为一个几何对象集合。
  • ST_Extent(geometry):计算几何对象的外接矩形范围。

10、几何对象输出函数:

  • ST_AsGeoJSON(geometry):将几何对象转换为 GeoJSON 格式的文本。
  • ST_AsKML(geometry):将几何对象转换为 KML 格式的文本。

参考文章:

  • Postgis 图文安装详细教程 (Windows):https://blog.csdn.net/LY1201A/article/details/107080664

– 求知若饥,虚心若愚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/242038.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指向未来: 量子纠缠的本质是一个指针

指向未来: 量子纠缠的本质是一个指针 概述基本概念理解量子纠缠PythonJavaC 理解波粒二象性PythonJavaC 理解量子隧穿理解宇宙常量PythonJavaC 概述 量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也…

Linux系统CPU持续飙高,如何排查?

一、检查CPU使用率 首先在Linux系统中检查CPU使用率。可以通过在命令行中输入top或htop命令来查看当前系统中各个进程的CPU使用率。如果CPU使用率大于80%,则可以考虑进行排查。 $ top 二、检查系统负载 另外可以使用uptime命令来查看系统的平均负载情况。 $ upti…

第二次作业+第三次作业

第二次作业第三次作业 第二次作业 题目: 网站需求: ​ 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[ww…

Python连接数据库的梳理

我们通常用的数据库类型主要有关系型数据库,非关系型数据库等,其中关系型数据库主要有Microsoft SQL Server ,MySQL,Oracle,SQLite等,常用的非关系型数据库包括Redis、DynamoDB,MongoDB等 ​​​​​​​ 一 关系型…

day2:TCP、UDP网络通信模型

思维导图 机械臂实现 #include <head.h> #define SER_POTR 8899 #define SER_IP "192.168.125.223" int main(int argc, const char *argv[]) {//创建套接字int cfdsocket(AF_INET,SOCK_STREAM,0);if(cfd-1){perror("");return -1;}//链接struct so…

Elasticsearch 数据类型相关总结:快速参考指南【记录】

在Elasticsearch中&#xff0c;有多种数据类型可用于定义字段。 在开始了解数据类型之前&#xff0c;首先要知道&#xff0c;在Elasticsearch中&#xff0c;分词处理主要针对文本字段&#xff0c;而对于其他类型字段&#xff08;如数值、日期、布尔等&#xff09;&#xff0c;通…

虚幻UE 材质-进阶边界混合之运行时虚拟纹理

之前在学习空山新雨后时对于边缘虚化过渡处理有很多技术 今天又要介绍一个边缘过渡的方法&#xff1a;运行时虚拟纹理 文章目录 前言一、运行时虚拟纹理二、使用步骤总结 前言 边缘过渡柔和的方式我们之前介绍了很多&#xff0c;但是效果也不是最好的。 像素偏移PDO和我们今天…

解决国内Linux服务器无法使用Github的方法

解决思路&#xff1a;修改Host https://www.ipaddress.com/ 利用上面的网站查询github.com和raw.githubusercontent.com的DNS解析的IP地址 最后&#xff0c;修改服务器的/etc/hosts 添加如下两行&#xff1a; 140.82.112.3 github.com 185.199.108.133 raw.githubuserconte…

IntelliJ IDEA 常用快捷键一览表(通用型,提高编写速度,类结构、查找和查看源码,替换与关闭,调整格式)

文章目录 IntelliJ IDEA 常用快捷键一览表1-IDEA的日常快捷键第1组&#xff1a;通用型第2组&#xff1a;提高编写速度&#xff08;上&#xff09;第3组&#xff1a;提高编写速度&#xff08;下&#xff09;第4组&#xff1a;类结构、查找和查看源码第5组&#xff1a;查找、替换…

bash shell基础命令(一)

文章目录 1.shell启动2. shell提示符3. bash手册3.1 man手册解读 4. 浏览Linux文件系统4.1 遍历目录4.1.1 绝对路径4.1.2 相对路径 4.2 列出目录和文件4.3 处理文件4.3.1创建文件4.3.2 复制文件4.3.3 链接文件4.3.3.1.软链接4.3.3.2 硬链接 4.3.4 文件重命名4.3.5 删除文件4.3.…

获取域控的方法

在域渗透中、作为渗透测试人员&#xff0c;获取域控的权限基本上可以获取整个内网的权限 1.高权限读取本地密码 当域管理员在域成员机器上登录进行工作的时候&#xff0c;会将明文密码保存在本地进行的lsass.exe&#xff0c;可以通过 mimikatz来读取到本地的明文密码。 priv…

HarmonyOS应用开发者高级认证试题库(鸿蒙)

目录 考试链接&#xff1a; 流程&#xff1a; 选择&#xff1a; 判断 单选 多选 考试链接&#xff1a; 华为开发者学堂华为开发者学堂https://developer.huawei.com/consumer/cn/training/dev-certification/a617e0d3bc144624864a04edb951f6c4 流程&#xff1a; 先进行…

01-开始Rust之旅

1. 下载Rust 官方推荐使用 rustup 下载 Rust&#xff0c;这是一个管理 Rust 版本和相关工具的命令行工具。下载时需要连接互联网。 这边提供了离线安装版本。本人学习的机器环境为&#xff1a; ubuntu x86_64&#xff0c;因此选用第②个工具链&#xff1b; 1. rust-1.75.0-x86_…

设计模式的学习笔记

设计模式的学习笔记 一. 设计模式相关内容介绍 1 设计模式概述 1.1 软件设计模式的产生背景 设计模式最初并不是出现在软件设计中&#xff0c;而是被用于建筑领域的设计中。 1977 年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任 Christopher Alexander 在…

Vue 3 hooks的基本使用及疑问

前言 vue3也用过一段时间了&#xff0c;hooks听说过&#xff0c;但是一直没有用过。公司的前端项目里也没有相应的应用&#xff0c;因此打算系统的学习一下。 hooks与普通函数的区别 以实现一个加法功能为例。 普通函数未抽离 <template><div class"box&quo…

STM32 GD32 瑞萨 psoc 等单片机 无线wifi蓝牙最佳解决方案

新联鑫威一系列低功耗高性价比sdio wifi/蓝牙combo的模块CYWL6208 , CYWL6312, CYW6209等可以搭配stm32 各种型号例如以下,支持sta/ap/apsta&#xff0c;双模蓝牙的应用&#xff0c;支持rt-thread, freertos, Azure RTOS, Linux, Android系统. 稳定强&#xff0c;功耗低&#x…

HFSS笔记/信号完整性分析(二)——软件仿真设置大全

文章目录 1、多核运算设置1.1 如何设置1.2 如何查看自己电脑的core呢&#xff1f;1.3 查看求解的频点 2、求解模式设置Driven Terminal vs Driven modal 3、Design settings4、自适应网格划分5、更改字体设置 仅做笔记整理与分享。 1、多核运算设置 多核运算只对扫频才有效果&…

Java项目:11 Springboot的垃圾回收管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 功能介绍 本系统通过利用系统的垃圾回收流程&#xff0c;提高垃圾回收效率&#xff0c;通过垃圾回收的申请&#xff0c;增删改查&#xff0c;垃…

stm32 FOC系列 直流有刷控制原理

1、直流有刷驱动板 使用三极管搭建的简易 H 桥电路&#xff0c;如图 5.3.1 所示&#xff1a; 图 5.3.1 是使用三极管搭建的简易 H 桥电路&#xff0c;其中 MOTOR 表示直流有刷电机&#xff0c; Q1、 Q2、 Q3 和 Q4 为 4 个三极管&#xff0c;其中 Q1 和 Q3 接在了电源正极&…

leetcode234. 回文链表

题目 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;hea…