PostGIS使用
- PostGIS Extension依赖的第三方软件需要用户进行单独安装,用户如需使用PostGIS功能,请提交工单或联系技术支持人员提交申请。
- 如果用户在使用中出现“ERROR:EXTENSION is not yet supported.”这种报错,则表示没有安装PostGIS软件包,请联系技术支持进行获取。
- GaussDB(DWS)已将uuid-ossp扩展预加载,用户可直接使用支持的uuid函数,无须执行CREATE EXTENSION uuid-ossp命令安装。
创建Extension
创建PostGIS Extension可直接使用CREATE EXTENSION命令进行创建:
1
|
CREATE EXTENSION postgis; |
使用Extension
PostGIS Extension函数调用格式为:
1
|
SELECT GisFunction (Param1, Param2,......); |
其中GisFunction为函数名,Param1、Param2等为函数参数名。下列SQL语句展示PostGIS的简单使用,对于各函数的具体使用,请参考《PostGIS-2.4.2用户手册》。
示例1:几何表的创建。
1 2 |
CREATE TABLE cities ( id integer, city_name varchar(50) ); SELECT AddGeometryColumn('cities', 'position', 4326, 'POINT', 2); |
示例2:几何数据的插入。
1 2 3 |
INSERT INTO cities (id, position, city_name) VALUES (1,ST_GeomFromText('POINT(-9.5 23)',4326),'CityA'); INSERT INTO cities (id, position, city_name) VALUES (2,ST_GeomFromText('POINT(-10.6 40.3)',4326),'CityB'); INSERT INTO cities (id, position, city_name) VALUES (3,ST_GeomFromText('POINT(20.8 30.3)',4326), 'CityC'); |
示例3:计算三个城市间任意两个城市距离。
1
|
SELECT p1.city_name,p2.city_name,ST_Distance(p1.position,p2.position) FROM cities AS p1, cities AS p2 WHERE p1.id > p2.id; |
删除Extension
在GaussDB(DWS)中删除PostGIS Extension的方法如下所示:
1
|
DROP EXTENSION postgis [CASCADE]; |
如果Extension被其它对象依赖(如创建的几何表),需要加入CASCADE(级联)关键字,删除所有依赖对象。