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.mzph.cn/news/635229.shtml

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

相关文章

HBase学习五:运维排障

1、负载均衡 1.1 Rgion迁移 在当前的HBase版本中,Region迁移虽然是一个轻量级操作,但实现逻辑依然比较复杂,≈复杂性主要表现在两个方面:其一,Region迁移过程涉及多种状态的改变;其二,迁移过程中涉及Master、ZooKeeper(ZK)以及RegionServer等多个组件的相互协调。 …

11.什么档次的原型模式和我写的一样

在《生化危机》系列电影中,克隆人是个频频出现的话题。保护伞公司为了需求复制出另一个战力相当的战士Alice,不惜克隆成百上千个Alice,然而直到最后,非但没有真正克隆出另一个完美的Alice,就连Alice自己也被证实是保护…

SpringBoot(三层框架Controller,Mapper,Service)中遇到的一些注解整理

本文主要从Controller层,Service层,Mapper层这三层架构中记录用到的各种注解 还有一些MyBatis用到的注解 持续更新到本人的毕设做完为止,太多了太多了根本学不完哈哈哈 1.Controller层 1.1GetMapping/PostMapping/DeleteMapping/PutMapping 用于建立HTTP请求与处理方法之间的…

Go 爬虫之 colly 从入门到不放弃指南

文章目录 概要介绍如何学习官方文档如何安装快速开始如何配置调试分布式代理层面执行层面存储层面存储多收集器配置优化持久化存储启用异步加快任务执行禁止或限制 KeepAlive 连接扩展总结如果想用 GO 实现爬虫能力,该如何做呢?抽时间研究了 Go 的一款爬虫框架 colly。 概要…

Qt文件和目录相关操作

1.相关说明 QCoreApplication类、QFile类、QDir、QTemporaryDir类、QTemporaryFile类、QFileSystemWatcher类的相关函数 2.相关界面 3.相关代码 #include "dialog.h" #include "ui_dialog.h" #include <QFileDialog> #include <QTemporaryDir>…

Ardupilot开源飞控之VTOL之旅:打印件清单

Ardupilot开源飞控之VTOL之旅&#xff1a;打印件清单 1. 源由2. 清单2.1 模拟VTX打印件2.2 摄像头打印件2.3 GPS & RC天线打印件2.4 飞控 & 电调打印件 3. 总结4. 参考资料 1. 源由 VTOL一直仍在角落吃灰&#xff0c;主要还是手头缺点经费&#xff0c;搞台3D打印机基本…

Kotlin 移动端多平台

支持多平台编程是 Kotlin 的主要优势之一。它减少了为不同平台编写和维护相同代码所花费的时间&#xff0c;同时保留了本机编程的灵活性和优势。 1. 基本概念 KMM&#xff1a;Kotlin Multiplatform for mobile&#xff08;移动设备的 Kotlin 多平台&#xff09; KMM 多平台的主…

16k+ start 一个开源的的监控系统部署教程

安装条件 Linux或macOS系统 4GB内存 开放 33014、33174、3183端口 1.安装 1、下载源码 首先使用 git 克隆源码到本地 git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/ 方式1&#xff1a;运行 install.sh 脚本一键安装 ./install.s…

luffy商城项目(一)

企业项目类型 # 1 面向互联网用户&#xff1a;商城类项目 -微信小程序商城 # 2 面向互联网用户&#xff1a;二手交易类的 -咸鱼 -转转 # 3 公司内部项目&#xff1a;python写的重点 -oa系统 -打卡系统工资核算系统 -第三方公司做的&#xff1a…

leetCode-42.接雨水

&#x1f4d1;前言 本文主要是【算法】——算法模拟的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#xff…

git提权

实验环境——vulnhub-dc2靶场 git提权 前提&#xff1a;用户可以使用sudo中git权限 查看sudo权限 sudo -l可以发现git命令存在sudo提权 基于此进行权限提升 方式&#xff1a; sudo git help config #在末行命令模式输入 !/bin/bash 或 !sh #完成提权 sudo git -p help…

直接发文!1D-2D-MTF-CNN-GRU-AT多通道图像时序融合的分类/故障识别程序!Excel导入,直接运行

​适用平台&#xff1a;Matlab2023版本及以上 本程序同时结合两篇国内顶级EI的方法&#xff1a;提出1D-2D-MTF-CNN-GRU-AT多通道图像时序融合的分类/故障识别程序&#xff01; ①中文EI期刊《电力自动化设备》12月29号网络首发文献&#xff1a;《基于格拉姆角场与并行CNN的并…

【PyTorch】PyTorch之Reduction Ops

文章目录 前言一、ARGMAX二、ARGMIN三、AMAX和AMIN四、ALL和ANY五、MAX和MIN六、MEAN七、MEDIAN八、NORM九、PROD十、STD十一、SUM十二、UNIQUE十三、VAR 前言 介绍pytorch的Reduction Ops。 一、ARGMAX torch.argmax(input, dim, keepdimFalse) → LongTensor Parameters&a…

突破Android开发瓶颈:6年Android开发者的实用建议

作为一名在Android领域摸爬滚打6年的老手&#xff0c;我想给那些在这个行业工作了3~5年的朋友们提供一些职业和技术上的建议。 许多开发者在职业生涯中都会遇到一个瓶颈期&#xff0c;尤其是当你在一个公司待了很长时间&#xff0c;感觉自己的技术和业务能力都无法得到提升时。…

多输入多输出 | Matlab实现基于LightGBM多输入多输出预测

多输入多输出 | Matlab实现基于LightGBM多输入多输出预测 目录 多输入多输出 | Matlab实现基于LightGBM多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于LightGBM多输入多输出预测&#xff08;完整源码和数据&#xff09; 1.data为数据集&a…

近期学习文章

DNSlog在渗透测试中的实战技巧 - 网安隐藏源IP&#xff0c;提高溯源难度的几种方案 - 网安FreeBuf网络安全行业门户 【漏洞公告】某平台一个有意思的CSRF // SecTrain安全博客 浅谈Web源码泄漏-安全客 - 安全资讯平台 红队-C2 Server基础构建 - 先知社区FreeBuf网络安全行业…

【电力电子在电力系统中的应用】2 CCM和DCM模式下Cuk电路的升降压工作状态

【仅供参考】 【2023.03西南交大电力电子在电力系统中的应用】 目录 0 仿真要求 1 仿真电路搭建及波形记录 1.1 CCM工作模式 1.1.1 升压模式 1.1.2 降压模式 1.2 DCM工作模式 1.2.1 升压模式 1.2.2 降压模式 1.3 改变开关频率和电容参数 1.3.1 改变开关频率 1.3.2 …

高清网络视频监控系统技术方案

目 录 一、概述 二、建设目标及需求 &#xff08;一&#xff09;建设总目标 &#xff08;二&#xff09;需求分析 三、设计依据与设计原则 &#xff08;一&#xff09;设计依据 &#xff08;二&#xff09;设计原则 四、建设方案设计 &#xff08;一&…

实用干货:最全的Loading动画合集网站!复制即用

大家好&#xff0c;我是大澈&#xff01; 本文约1000字&#xff0c;整篇阅读大约需要2分钟。 感谢关注微信公众号&#xff1a;“程序员大澈”&#xff0c;免费领取"面试礼包"一份&#xff0c;然后免费加入问答群&#xff0c;从此让解决问题的你不再孤单&#xff01…

01-开始Rust之旅

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