1. 引言
PostGIS是一个开源的地理空间扩展,为PostgreSQL数据库提供了丰富的地理信息系统(GIS)功能。通过在数据库中安装PostGIS,您可以进行空间数据处理、空间查询和地理信息分析等操作。
2. 安装PostGIS(必须与pgsql大版本一致)
按照以下步骤在PostgreSQL数据库中安装PostGIS:
-
安装EPEL软件仓库:运行以下命令安装EPEL软件仓库,以获取PostGIS的安装包:
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-
安装PostGIS:运行以下命令安装PostGIS:
sudo yum install postgis33_15
-
给数据库安装拓展:连接到您的数据库,并运行以下命令以在数据库中安装PostGIS相关拓展:(给单个数据库创建拓展非全局)
CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; CREATE EXTENSION fuzzystrmatch; CREATE EXTENSION address_standardizer; CREATE EXTENSION address_standardizer_data_us; CREATE EXTENSION postgis_tiger_geocoder;
-
验证安装:运行以下命令以验证PostGIS的安装:
SELECT PostGIS_full_version();
如果成功安装,将显示PostGIS的版本信息。
3. 创建和查询空间数据
按照以下步骤在数据库中创建空间数据表并进行空间数据查询:
-
创建空间数据表:运行以下命令创建一个名为spatial_data的空间数据表:
CREATE TABLE spatial_data ( id SERIAL PRIMARY KEY, name VARCHAR(50), geom GEOMETRY(Point, 4326) );
-
插入空间数据:运行以下命令向spatial_data表中插入一条空间数据记录:
INSERT INTO spatial_data (name, geom) VALUES ('Point A', ST_GeomFromText('POINT(0 0)', 4326));
-
进行空间数据查询:运行以下命令以查询与给定点在指定距离内的空间数据记录:
SELECT id, name FROM spatial_data WHERE ST_DWithin(geom, ST_GeomFromText('POINT(0 0)', 4326), 1.0);
这将返回与给定点在半径为1.0的距离内的空间数据记录。