PGSQL安装PostGIS扩展模块

news2025/2/24 2:16:46

一、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.coloradmin.cn/o/1398730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘无忧秘书AI看图说话功能:职场新宠,效率倍增器

在数字化时代,信息传递的方式越来越多样化。图片作为一种直观、简洁的信息载体,在日常工作和生活中扮演着越来越重要的角色。然而,如何快速、准确地解读图片中的信息,成为了许多职场人士面临的难题。这时,无忧秘书的AI…

园区参观路径 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 园区某部门举办了Family Day,邀请员工及其家属参加; 将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置…

一篇文章带你了解 什么是u(ustd)带你了解他的前世今生

在数字货币的繁荣世界中,USDT无疑是其中一位重要的角色。它的前世今生,是一个从无到有,从小到大,经历了种种波折和争议的故事。 2014年11月下旬,一个名为Realcoin的注册地为马恩岛和香港的公司决定改变自己的名字&…

beego API 自动化文档

API 全局设置 必须设置在 routers/router.go 中,文件的注释,最顶部: // APIVersion 1.0.0 // Title mobile API // Description mobile has every tool to get any job done, so codename for the new mobile APIs. // Contact astaxiegmai…

AI基于近邻图的向量搜索(一)

案例介绍 最近邻问题 SPTAG解决的问题是如何从大规模的向量中快速找出近似最近邻点(Approximate Nearest Neighbor),即实现最近邻搜索(Nearest Neighbor Search)。 我们可以将问题定义为: 其中&#xf…

【51单片机Keil+Proteus8.9+ADC0804】ADC实验 模拟转数字实验

一、实验名称 ADC实验 模拟转数字实验 二、设计思路 电路设计 1.选用AT89C51单片机作为电路核心单元,外接8位单通道AD转换器ADC0804芯片和LM016L显示器以及滑动变阻器等其它常用元器件构成电路。 2.将ADC0804芯片的控制引脚RD,WR,INTR接到AT89C51芯片对应引脚&…

双指针(JAVA语言)

目录 力扣283.移动零 力扣1089复写零(难度较大,要重点理解,可以记不住咋写,但要记住想法) 力扣202题快乐数 力扣11题.盛最多水的容器(好写代码,方法不好想) 力扣283.移动零 public static voi…

第一部分 概述

目录 一、计算机网络在信息时代的作用 大众熟悉的三大类网络有 Internet 互连网与互联网的区别 可以从两种不同的方面来认识互联网: 互联网在生活中的地位 互联网 互联网负面影响 二、互联网的概述 网络的网络 基本概念 互连网基础结构发展的三个阶段 万维网www(…

未来 AI 可能给哪些产业带来哪些进步与帮助?

AI时代如何要让公司在创新领域领先吗?拥抱这5种创新技能,可以帮助你的公司应对不断变化。包括人工智能、云平台应用、数据分析、 网络安全和体验设计。这些技能可以帮助你提高业务效率、保护公司知识资产、明智决策、满足客户需求并提高销售额。 现在就加…

使用.NET API 中的 EventCounters进行指标监控

写在前面 为了实现轻量级、跨平台、准确实时的性能指标收集,从 .NET Core 3.0 版本开始引入 EventCounters API。除了 .NET 运行时提供的 EventCounters 外,还可以实现自定义的 EventCounters。 以便跟踪各种指标,EventCounters 作为 EventS…

比亚迪50亿重拳出击,建全球首个全地形赛车场,到底闹哪样?

比亚迪这是在悄无声息中准备的一击重拳吗?新建赛车场背后,到底藏着什么不为人知的战略目的?它是否再次玩转行业规则,一举带动整车文化的更深度发展?作为一直以来重视技术和长远规划的比亚迪来说,这里面肯定…

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体 文章目录 【C语言】- 设置控制台标题、编码、文字颜色、大小和字体1 - 设置控制台标题2 - 设置控制台编码3 - 设置控制台字体和大小参考链接 1 - 设置控制台标题 因为要用到 Windows API,所以需要包含头文件…

【谭浩强C程序设计精讲 chap4】选择结构程序设计

文章目录 第4章 选择结构程序设计一、用 if 语句实现选择结构二、用 switch 语句实现多分支选择结构三、条件运算符和条件表达式 第4章 选择结构程序设计 一、用 if 语句实现选择结构 一般形式: if (表达式)  语句1 [ else  语句2 ] 其他形式,常用的…

Linux 批量添加 known_hosts

前言 我们在做完linux ssh 免密登录后,通常会执行一些自动化任务(比如启动Spark集群),也就是需要ssh到每台节点执行相同命令。但是有一个问题就是如果 known_hosts 文件中不存在这个ip的话,在第一次连接时会弹出确认公…

Unity常用的优化技巧集锦

Unity性能优化是面试的时候经常被问道的一些内容,今天给大家分享一些常用的Unity的优化技巧和思路,方便大家遇到问题时候参考与学习。 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游…

傲空间私有部署Windows指南

推荐阅读 智能化校园:深入探讨云端管理系统设计与实现(一) 智能化校园:深入探讨云端管理系统设计与实现(二) 安装 docker 请下载对应的 Docker,安装完成后启动。 Docker Desktop for Windows…

【Redis配置】Linux下的Redis安装配置

压缩包方式的Redis下载与安装 进入官网 Redis官网:https://redis.io/download/ 往下翻可以找到其他版本的Redis,或者访问https://download.redis.io/releases/查找自己所需Redis版本。 下载自己所需版本 此处我选择下载的是6.2.14版本 上传到Linux…

Crow:实现点击下载功能

Crow:设置网站的index.html-CSDN博客 讲述了如何完成一个最简单的网页的路由 很多网页提供了下载功能,怎么实现呢,其实也很简单。 假设网页的目录结构如图 $ tree static static ├── img │ └── goodday.jpg └── index.html //index.html <html> <body&…

VMnet1、VMnet8到底是什么?

VMnet1、VMnet8到底是什么&#xff1f; 当我们安装VMware Workstation后&#xff0c;在宿主机(物理电脑)上会多出两个网卡VMNet1、VMNet8。 VMnet1和VMnet8是两个虚拟网卡&#xff0c;主要作用是让虚拟机可以通过你的宿主机的网线上网。 VMnet1是为host-only方式服务的&#x…

CSS实现平行四边形

1、为什么实现平行四边形 在日常开发过程中&#xff0c;有些时候我们可以会遇到一种情况&#xff0c;如可视化大屏中要求我们横线实现对应的进度条&#xff0c;但进度条的内容是由无数个平行四边形组装类似于进度条的形式&#xff0c;那么我们就需要使用CSS来进行对应的实现。 …