
# PostGIS使用
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
PostGIS Extension依赖的第三方软件需要用户进行单独安装，用户如需使用PostGIS功能，请提交工单或联系技术支持人员提交申请。
如果用户在使用中出现"ERROR：EXTENSION is not yet supported."这种报错，则表示没有安装PostGIS软件包，请联系技术支持进行获取。
#### 创建Extension
创建PostGIS Extension可直接使用CREATE EXTENSION命令进行创建，建议在public模式下创建PostGIS。
```
CREATE EXTENSION postgis;
```
#### 使用Extension
PostGIS Extension函数调用格式为：
```
SELECT GisFunction (Param1, Param2,......);
```
其中GisFunction为函数名，Param1、Param2等为函数参数名。下列SQL语句展示PostGIS的简单使用，对于各函数的具体使用，请参考[《PostGIS-2.4.2用户手册》](https://download.osgeo.org/postgis/docs/postgis-2.4.2.pdf)。
示例1：几何表的创建。
```
CREATE TABLE cities ( id integer, city_name varchar(50) );
SELECT AddGeometryColumn('cities', 'position', 4326, 'POINT', 2);
```
示例2：几何数据的插入。
```
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：计算三个城市间任意两个城市距离。
```
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
在DWS中删除PostGIS Extension的方法如下所示：
```
DROP EXTENSION postgis [CASCADE];
```
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
如果Extension被其它对象依赖（如创建的几何表），需要加入CASCADE（级联）关键字，删除所有依赖对象。
