普通表转为矢量空间表:
# 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)