PostgreSQL15 + PostGis + QGIS安装教程

目录

下载

PostgreSQL15安装:下载地址

PostGIS安装:下载地址(倒数第二个)

1、PostgreSQL安装

下载安装包之后一直点下一步就行,默认地址可以根据自己要求更改

1.1、环境变量配置

我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 新建

  1. 新建GDAL_DATA(名字随便取),将postgis的安装路径填入变量值
  2. 在Path中新增:%PG_HOME%\bin\
  3. 在cmd中使用命令:psql --version 查看是否配置成功
  4. 配置完成后,在cmd中启动postgreSQL服务【重要】
    pg_ctl -D D:\ProgramFile\postgresql\15\data start 其中-D后面的路径是postgresql的安装路径下的data文件夹

    确保服务成功启动后,再安装postGIS

2、PostGIS安装

  1. 开始安装,使用默认安装,一直点next即可(安装进行到下面这个页面时,第二个选项可选可不选,功能是创建一个数据库模版)
  2. 安装完成后,打开Navicat,新建一个postgreSQL连接。账号:postgres 密码:postgis
  3. 连接成功后,可以看到之前安装时选择的模版

2.1、安装插件

java 复制代码
CREATE EXTENSION postgis;
  • 用途:为 PostgreSQL 提供地理空间对象支持,包括空间数据类型、函数和操作符。
  • 描述:PostGIS 允许用户在 PostgreSQL 数据库中存储、查询和操纵地理空间数据。
java 复制代码
CREATE EXTENSION postgis_raster;
  • 用途:追踪执行的 SQL 语句的统计信息,帮助分析和优化查询性能。
  • 描述:该扩展提供了一个视图,其中包含了关于执行时间、调用次数等的信息。
java 复制代码
CREATE EXTENSION postgis_topology;
  • 用途:处理拓扑关系的存储和查询。
  • 描述:建立拓扑关系模型,支持拓扑操作(如邻域查询、边界查询等),提供了对几何对象之间拓扑关系的高效管理。
java 复制代码
CREATE EXTENSION postgis_sfcgal;
  • 用途:处理和分析复杂的曲面几何对象:postgis_sfcgal可以处理和分析曲面多边形、曲面线、曲面点等复杂的几何对象,提供了丰富的几何操作和分析功能。

    进行高级空间计算:postgis_sfcgal基于SFCGAL库,提供了高级的几何计算功能,如几何对象之间的交集、并集、差集等操作。

    支持曲面几何对象的拓扑关系分析:postgis_sfcgal可以进行曲面几何对象之间的拓扑关系判断,如判断是否相交、是否包含等。

    计算曲面几何对象的缓冲区:postgis_sfcgal可以计算曲面几何对象的缓冲区,生成具有指定缓冲区半径的几何对象。

    进行曲面几何对象的仿射变换:postgis_sfcgal支持对曲面几何对象进行仿射变换,如平移、旋转、缩放等操作。

  • 描述:postgis_sfcgal是一个基于SFCGAL库的扩展模块,SFCGAL是一个开源的库,提供了对2D和3D曲面几何对象进行高级计算和分析的功能。通过postgis_sfcgal,可以在PostgreSQL中使用SFCGAL库提供的各种功能,实现复杂曲面几何对象的处理和分析

java 复制代码
CREATE EXTENSION fuzzystrmatch;
  • 用途:模糊字符串匹配。
  • 描述:提供模糊字符串匹配函数,用于执行模糊搜索、模式匹配和相似度计算。
java 复制代码
CREATE EXTENSION address_standardizer;

用途:地址标准化。

描述:提供地址标准化功能,将输入的地址进行格式化和规范化,使其符合特定的地址结构。

java 复制代码
CREATE EXTENSION address_standardizer_data_us;

用途:美国地址标准化所需的数据。

描述:为Address Standardizer提供美国地址标准化所需的数据集,包括街道、城市、州等信息。

java 复制代码
CREATE EXTENSION postgis_tiger_geocoder;

用途:转换TIGER数据为PostGIS格式,用于美国地理数据的存储和查询。

描述:将美国地理数据(如街道、地理区域边界等)的TIGER格式转换为PostGIS格式,提供了对美国地理数据的存储和查询能力。

pgcrypto:

用途:在数据库中处理敏感数据的存储和传输。

描述:提供加密和解密函数,支持哈希、对称加密和非对称加密等操作。

hstore:

用途:存储和查询键值对数据。

描述:在单个数据库列中存储多个键值对,方便存储和检索半结构化数据。

citext:

用途:对不区分大小写的文本数据进行索引和比较。

描述:允许在索引和查询时忽略文本的大小写差异。

pg_stat_statements:

用途:收集和查询SQL语句执行统计信息。

描述:帮助分析和优化数据库查询性能,了解消耗最多资源的SQL语句。

uuid-ossp:

用途:生成和操作全局唯一标识符(UUID)。

描述:提供函数用于生成唯一的标识符值。

pg_trgm:

用途:文本数据的模糊匹配功能。

描述:用于模糊搜索、相似度计算、自动完成等应用场景。

intarray:

用途:整数数组的索引和操作功能。

描述:存储和查询整数数组,并支持数组间的交集、并集、差集等操作。

pg_stat_activity:

用途:查询当前数据库活动和会话信息。

描述:帮助了解当前数据库的连接数、查询活动和锁等情况。

3、QGIS下载

如果想可视化postGIS中的数据,可以使用QGIS查看,下载地址

3.1、安装

  1. 使用默认安装;
  2. 安装完成后,在左侧找到postgreSQL,右键创建一个新的数据库连接,连接已有的postGIS数据库;
  3. 连接成功后,可以将数据拖动到右侧显示框查看

3.2、测试

java 复制代码
-- 三维点数据
CREATE TABLE points (
  id SERIAL PRIMARY KEY,
  name TEXT,
  location geometry(PointZ, 4326)
);

INSERT INTO points (name, location) VALUES ('point1', ST_GeomFromText('POINTZ(0 0 1)', 4326));
INSERT INTO points (name, location) VALUES ('point2', ST_GeomFromText('POINTZ(1 1 2)', 4326));

-- 三维线数据
CREATE TABLE lines (
  id SERIAL PRIMARY KEY,
  name TEXT,
  geom geometry(MultiLineStringZ, 4326)
);

INSERT INTO lines (name, geom) VALUES ('line1', ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 0 1 0, 1 1 0), (2 2 1, 3 3 2))', 4326));
INSERT INTO lines (name, geom) VALUES ('line2', ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 0 1 1, 1 1 1))', 4326));

-- 三维面数据
CREATE TABLE polygons (
  id SERIAL PRIMARY KEY,
  name TEXT,
  geom geometry(PolygonZ, 4326)
);

INSERT INTO polygons (name, geom) VALUES ('polygon1', ST_GeomFromText('POLYGON Z((0 0 0, 0 1 0, 1 1 0, 0 0 0))', 4326));
INSERT INTO polygons (name, geom) VALUES ('polygon2', ST_GeomFromText('POLYGON Z((0 0 0, 0 1 1, 1 1 1, 0 0 0))', 4326));
相关推荐
武大打工仔几秒前
从零开始手搓一个MVC框架
后端
开心猴爷6 分钟前
移动端网页调试实战 Cookie 丢失问题的排查与优化
后端
kaika16 分钟前
告别复杂配置!使用 1Panel 运行环境功能轻松搭建 Java 应用
java·1panel·建站·halo
用户5724056146 分钟前
解析Json
后端
舒一笑7 分钟前
Mac 上安装并使用 frpc(FRP 内网穿透客户端)指南
后端·网络协议·程序员
每天学习一丢丢13 分钟前
Spring Boot + Vue 项目用宝塔面板部署指南
vue.js·spring boot·后端
邹小邹13 分钟前
Go 1.25 强势来袭:GC 速度飙升、并发测试神器上线,内存检测更精准!
后端·go
有梦想的攻城狮14 分钟前
Java 11中的Collections类详解
java·windows·python·java11·collections
lichenyang45317 分钟前
管理项目服务器连接数据库
数据库·后端
生无谓19 分钟前
在Windows系统上安装多个JDK版本并切换
后端