一、PostgreSQL15与对应PostGIS安装
- PostgreSQL15安装:下载地址
- PostGIS安装:下载地址(选择倒数第二个)
1、PostgreSQL安装
- 下载安装包;
- 开始安装,这里使用默认安装,一直next直到安装完成;
- 在系统环境变量中,添加PG_HOME变量:
- 在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连接:
- 连接成功后,可以看到之前安装时选择的模版:
- 如果安装时没有选择模版,也可以手动在查询语句中添加扩展和空间函数支持:
-- Enable PostGIS (as of 3.0 contains just geometry/geography)CREATE EXTENSION postgis;-- enable raster support (for 3+)CREATE EXTENSION postgis_raster;-- Enable TopologyCREATE EXTENSION postgis_topology;-- Enable PostGIS Advanced 3D-- and other geoprocessing algorithms-- sfcgal not available with all distributionsCREATE EXTENSION postgis_sfcgal;-- fuzzy matching needed for TigerCREATE EXTENSION fuzzystrmatch;-- rule based standardizerCREATE EXTENSION address_standardizer;-- example rule data setCREATE EXTENSION address_standardizer_data_us;-- Enable US Tiger GeocoderCREATE EXTENSION postgis_tiger_geocoder;
- 【注意】要使用postGIS扩展必须保证postgreSQL服务启动,即postgreSQL安装中的第六步,添加了postGIS扩展后,就可以开始使用了:常见的空间函数见这篇文章
二、空间数据可视化
如果想可视化postGIS中的数据,可以使用QGIS查看,QGIS下载地址。
- 使用默认安装;
- 安装完成后,在左侧找到postgreSQL,右键创建一个新的数据库连接,连接已有的postGIS数据库;
- 连接成功后,可以将数据拖动到右侧显示框查看:提供一下这里的数据表:
-- 三维点数据CREATETABLE points (
id SERIALPRIMARYKEY,
name TEXT,
location geometry(PointZ,4326));INSERTINTO points (name, location)VALUES('point1', ST_GeomFromText('POINTZ(0 0 1)',4326));INSERTINTO points (name, location)VALUES('point2', ST_GeomFromText('POINTZ(1 1 2)',4326));-- 三维线数据CREATETABLElines(
id SERIALPRIMARYKEY,
name TEXT,
geom geometry(MultiLineStringZ,4326));INSERTINTOlines(name, geom)VALUES('line1', ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 0 1 0, 1 1 0), (2 2 1, 3 3 2))',4326));INSERTINTOlines(name, geom)VALUES('line2', ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 0 1 1, 1 1 1))',4326));-- 三维面数据CREATETABLE polygons (
id SERIALPRIMARYKEY,
name TEXT,
geom geometry(PolygonZ,4326));INSERTINTO polygons (name, geom)VALUES('polygon1', ST_GeomFromText('POLYGON Z((0 0 0, 0 1 0, 1 1 0, 0 0 0))',4326));INSERTINTO polygons (name, geom)VALUES('polygon2', ST_GeomFromText('POLYGON Z((0 0 0, 0 1 1, 1 1 1, 0 0 0))',4326));
标签:
postgresql
数据库
本文转载自: https://blog.csdn.net/xjx19991226/article/details/135153164
版权归原作者 波比波 所有, 如有侵权,请联系我们删除。
版权归原作者 波比波 所有, 如有侵权,请联系我们删除。