当前位置: 首页 > 工具软件 > PostGIS > 使用案例 >

PostGIS 基础操作

白昊乾
2023-12-01

普通表转为矢量空间表:

# AddGeometryColumn
text AddGeometryColumn(varchar schema_name, varchar table_name, varchar column_name, integer srid, varchar type, integer dimension, boolean use_typmod=true);
CREATE SCHEMA my_schema;
CREATE TABLE my_schema.my_spatial_table (id serial);
SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom',4326,'POINT',2);
SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);

注意事项:

(1)srid必须在SPATIAL_REF_SYS表中

(2)添加到的表必须存在

(3)添加的类型存在

从空间表中删除某一几何类型字段:

# DropGeometryColumn
boolean DropGeometryTable(varchar schema_name, varchar table_name);
SELECT DropGeometryTable ('my_schema','my_spatial_table');
DROP TABLE my_schema.my_spatial_table;

获取PostGIS版本相关信息函数(以下函数均返回text)

# PostGIS_Full_Version     返回所有版本信息
SELECT PostGIS_Full_Version();

# PostGIS_GEOS_Version    返回GEOS类库的版本信息,及是否可用。
SELECT PostGIS_GEOS_Version();

# PostGIS_LibXML_Version   返回libxml2库的版本信息
SELECT PostGIS_LibXML_Version();

# PostGIS_Lib_Build_Date    返回PostGIS类库构建时间
SELECT PostGIS_Lib_Build_Date();

# PostGIS_Lib_Version      返回PostGIS类库版本
SELECT PostGIS_Lib_Version();

# PostGIS_PROJ_Version     返回PROJ4类库的版本信息,及是否可用。
SELECT PostGIS_PROJ_Version();

# PostGIS_Scripts_Build_Date 返回Scripts构建时间
SELECT PostGIS_Scripts_Build_Date();

# PostGIS_Scripts_Installed   返回安装脚本版本
SELECT PostGIS_Scripts_Installed();

# PostGIS_Scripts_Released  返回卸载脚本版本
SELECT PostGIS_Scripts_Released();

# PostGIS_Version         返回PostGIS版本信息
SELECT PostGIS_Version();

几何对象关系函数

# 获取两个几何对象间的距离 
ST_Distance(geometry, geometry) 

# 如果两个几何对象间距离在给定值范围内,则返回TRUE 
ST_DWithin(geometry, geometry, float) 

#判断两个几何对象是否相等 (比如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的几何对象) 
ST_Equals(geometry, geometry) 

#判断两个几何对象是否分离 
ST_Disjoint(geometry, geometry) 

#判断两个几何对象是否相交 
ST_Intersects(geometry, geometry) 

#判断两个几何对象的边缘是否接触 
ST_Touches(geometry, geometry)

#判断两个几何对象是否互相穿过 
ST_Crosses(geometry, geometry) 

#判断A是否被B包含 
ST_Within(geometry A, geometry B) 

#判断两个几何对象是否是重叠 
ST_Overlaps(geometry, geometry) 

#判断A是否包含B 
ST_Contains(geometry A, geometry B) 

#判断A是否覆盖 B 
ST_Covers(geometry A, geometry B) 

#判断A是否被B所覆盖 
ST_CoveredBy(geometry A, geometry B) 

#通过DE-9IM 矩阵判断两个几何对象的关系是否成立 
ST_Relate(geometry, geometry, intersectionPatternMatrix) 

#获得两个几何对象的关系(DE-9IM矩阵) 
ST_Relate(geometry, geometry)
 类似资料: