PG库处理矢量数据常用函数及语句记录

本文档详细介绍了PostGIS在PG库中的应用技巧,包括如何计算几何对象的质心、面积、周长和长度等属性,以及如何进行字符串截取、表结构管理和空间参考系统(SRID)设置等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PG库常用函数记录

计算质心点坐标:

ST_X(ST_Centroid(geom)) ST_Y(ST_Centroid(geom))

计算图斑面积:

ST_Area(geom)

计算周长:

ST_Perimeter(geom)

计算长度:

ST_Length(geom)

计算最大最小 X Y:

ST_XMin ST_YMin ST_XMax ST_YMax

截取字符串:

substring(zldwdm,1,6)

PG库 查询某张表字段类型及字段名称:

SELECT column_name,udt_name FROM information_schema.columns where table_name = ‘td_xzdw_2019’

PG库 删除某张表数据,但保留表结构

TRUNCATE TABLE tablename;(适合大量数据) delete from tablename;(适合小量数据)

PG库设置更新表的 srid 值

select UpdateGeometrySRID(‘td_dltb_2019’, ‘geom’, 4490);

查询表的 srid 值

select st_srid(geom) from ‘td_dltb_2019’

PG库 获取表字段默认值:

SELECT column_name, column_default
FROM information_schema.columns
WHERE (table_schema, table_name) = (‘public’, ‘td_dltb_2019’)
ORDER BY ordinal_position

获取某个字段默认值:(比如 xjdm 字段)

SELECT column_name, column_default
FROM information_schema.columns
WHERE (table_schema, table_name) = (‘public’, ‘td_dltb_2019’)
and column_name = ‘xjdm’
ORDER BY ordinal_position;

PG库新建库时:

– 新建数据库需要开启postgis插件
– 扩展PG gis插件
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_raster;
CREATE EXTENSION postgis_sfcgal;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION address_standardizer;
CREATE EXTENSION address_standardizer_data_us;
CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION postgis_topology;
SET postgis.enable_outdb_rasters = True;
SET postgis.gdal_enabled_drivers = ‘ENABLE_ALL’;

删除表中某一字段:

alter table “tablename” drop column if exists “fieldname”

修改表名:

alter table “old_tablename” rename to “new_tablename”

修改字段名:

alter table “tablename” rename ‘old_fieldname’ to ‘new_fieldname’

添加字段:

alter table “tablename” add column fieldname fieldType
(alter table “xx_xxxx” add column xxxx “numeric”(10,3))

表字段添加注释:

comment on column “strTableName”.“fieldName” is ‘fieldAlias’

获取数据库下所有表名称

SELECT table_name FROM information_schema.tables WHERE table_schema=‘public’ AND table_type=‘BASE TABLE’

Sql语句执行顺序记录
  1. From 语句;

  2. On condition(表连接条件)

  3. 根据连接条件连接表 ( Join )

  4. Where 语句;

  5. Group by 语句;

  6. Having 语句;

  7. Select 语句(设置好条件之后,开始查询)

  8. Distinct 语句(对查询结果做去重处理)

  9. Order by 语句(对去重之后的结果进行排序)

  10. Limit N offset M (排序之后,按条件及偏移量取数据)

由 srid 值以及 wkt 串 通过 st_geographyfromtext 函数 构造一个二进制表示的 OGRGeometry*;

示例:
select st_geographyfromtext(‘SRID=4490;POLYGON((109.73747356 33.859271242,109.73747356 34.4337923620001,110.671924859 34.4337923620001,110.671924859 33.859271242,109.73747356 33.859271242))’)

在PG库中通过执行以上sql语句可以获取一个OGRGeometry*

由 srid 值以及 wkt 串 通过 st_geomfromtext 函数 构造一个二进制表示的 OGRGeometry*;

示例:
select st_geomfromtext(‘MULTIPOLYGON(((108.804296709 34.0693579360001,108.803768677 34.069352655,108.803663128 34.0693516000001,108.803660684 34.0694176170001,108.803652827 34.0696297740001,108.804246326 34.0696459690001,108.804296709 34.0693579360001)))’, 4490)

在PG库中通过执行以上sql语句可以获取一个OGRGeometry*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值