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));
相关推荐
wefly201727 分钟前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
zhenxin012234 分钟前
Spring Boot实现定时任务
java
小江的记录本44 分钟前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
sheji34161 小时前
【开题答辩全过程】以 基于springboot的校园失物招领系统为例,包含答辩的问题和答案
java·spring boot·后端
寂静or沉默1 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
卓怡学长1 小时前
m289在线交友系统
java·spring·tomcat·maven·intellij-idea·hibernate
程序员cxuan1 小时前
人麻了,谁把我 ssh 干没了
人工智能·后端·程序员
zhglhy2 小时前
Java分库分表技术对比分析
java·分库分表
wuyikeer2 小时前
Spring Framework 中文官方文档
java·后端·spring
豆豆的java之旅2 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构