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));
相关推荐
沈询-阿里38 分钟前
java-智能识别车牌号_基于spring ai和开源国产大模型_qwen vl
java·开发语言
AaVictory.44 分钟前
Android 开发 Java中 list实现 按照时间格式 yyyy-MM-dd HH:mm 顺序
android·java·list
Yaml41 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
LuckyLay1 小时前
Spring学习笔记_27——@EnableLoadTimeWeaving
java·spring boot·spring
向阳12181 小时前
Dubbo负载均衡
java·运维·负载均衡·dubbo
Gu Gu Study2 小时前
【用Java学习数据结构系列】泛型上界与通配符上界
java·开发语言
小码编匠2 小时前
一款 C# 编写的神经网络计算图框架
后端·神经网络·c#
WaaTong2 小时前
《重学Java设计模式》之 原型模式
java·设计模式·原型模式
m0_743048442 小时前
初识Java EE和Spring Boot
java·java-ee