目录
- 下载
- 1、PostgreSQL安装
- 1.1、环境变量配置
- 2、PostGIS安装
- 2.1、安装插件
- 3、QGIS下载
- 3.1、安装
- 3.2、测试
下载
PostgreSQL15安装:下载地址
PostGIS安装:下载地址(倒数第二个)
1、PostgreSQL安装
下载安装包之后一直点下一步就行,默认地址可以根据自己要求更改
1.1、环境变量配置
我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 新建
- 新建GDAL_DATA(名字随便取),将postgis的安装路径填入变量值
- 在Path中新增:%PG_HOME%\bin\
- 在cmd中使用命令:psql --version 查看是否配置成功
- 配置完成后,在cmd中启动postgreSQL服务【重要】
pg_ctl -D D:\ProgramFile\postgresql\15\data start 其中-D后面的路径是postgresql的安装路径下的data文件夹
确保服务成功启动后,再安装postGIS
2、PostGIS安装
- 开始安装,使用默认安装,一直点next即可(安装进行到下面这个页面时,第二个选项可选可不选,功能是创建一个数据库模版)
- 安装完成后,打开Navicat,新建一个postgreSQL连接。账号:postgres 密码:postgis
- 连接成功后,可以看到之前安装时选择的模版
2.1、安装插件
CREATE EXTENSION postgis;
- 用途:为 PostgreSQL 提供地理空间对象支持,包括空间数据类型、函数和操作符。
- 描述:PostGIS 允许用户在 PostgreSQL 数据库中存储、查询和操纵地理空间数据。
CREATE EXTENSION postgis_raster;
- 用途:追踪执行的 SQL 语句的统计信息,帮助分析和优化查询性能。
- 描述:该扩展提供了一个视图,其中包含了关于执行时间、调用次数等的信息。
CREATE EXTENSION postgis_topology;
- 用途:处理拓扑关系的存储和查询。
- 描述:建立拓扑关系模型,支持拓扑操作(如邻域查询、边界查询等),提供了对几何对象之间拓扑关系的高效管理。
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库提供的各种功能,实现复杂曲面几何对象的处理和分析
CREATE EXTENSION fuzzystrmatch;
- 用途:模糊字符串匹配。
- 描述:提供模糊字符串匹配函数,用于执行模糊搜索、模式匹配和相似度计算。
CREATE EXTENSION address_standardizer;
用途:地址标准化。
描述:提供地址标准化功能,将输入的地址进行格式化和规范化,使其符合特定的地址结构。
CREATE EXTENSION address_standardizer_data_us;
用途:美国地址标准化所需的数据。
描述:为Address Standardizer提供美国地址标准化所需的数据集,包括街道、城市、州等信息。
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、安装
- 使用默认安装;
- 安装完成后,在左侧找到postgreSQL,右键创建一个新的数据库连接,连接已有的postGIS数据库;
- 连接成功后,可以将数据拖动到右侧显示框查看
3.2、测试
-- 三维点数据
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));