PostGIS的geometry类型及使用方法
2023-11-22 17:15 古兆洋 阅读(846) 评论(0) 收藏 举报转:https://blog.csdn.net/supermapsupport/article/details/123573338
作者:WuMY
PostGIS中矢量数据如何存储和构造,有哪些注意事项?其空间数据模型体系又遵循哪些标准规范?本文进行了详细介绍,并提供实操内容供读者参考。
此外,Yukon构建在PostGIS的基础能力之上(参见文章:Yukon及其模块简介 ),完全兼容PostGIS的矢量数据能力。
PostGIS的geometry数据类型
geometry是PostGIS的基本空间数据类型,用于表达点线面等空间要素,具体类型涵盖了OGC的简单对象模型,并扩展实现了 SQL/MM ( ISO/IEC 13249-3 SQL Multimedia - Spatial ) Curver相关类型,定义了包含圆弧曲线的几何子对象类型 CircularString、 CompoundCurve、 CurvePolygon、MultiCurve、 MultiSurface。
OGC在 SFA( Simple Features Access Standard ) 中定义了几何对象的类型,其中包括原子类型的 Point、LineString、LinearRing 和 Polygon,以及集合类型 MultiPoint、MultiLineString、MultiPolygon 和 GeometryCollection。
以下为各几何对象的类型、构成及有效性限定:
对象分类	对象类型	描述	构成	有效性限定
SFA简单对象	POINT	点	单点	/
MULTIPOINT	多点	由n个点组成	/
LINESTRING	线,折线	由点串构成	/
LINEARRING	线环	由点串构成	首尾闭合,非自相交
MULTILINESTRING	点串	由n个线串组成	/
POLYGON	面	由n个首尾相交的线串组成	边缘为线环、内部为洞
MULTIPOLYGON	多面	由n个面组成	非覆盖、非相邻
POLYHEDRALSURFACE	多面体表面	由n个具有相邻边的Polygon组成	具有相邻边
TRIANGLE	三角形	由3个非共线顶点组成	首尾闭合、非共线
TIN	不规则三角网	由n个三角形组成	非覆盖
SQL/MM参数化对象	CIRCULARSTRING	曲线串	用点串描述,三个点确定一段圆弧	前一个圆弧的最后一个点与后一个圆弧的第一个点共用;特别地,如果圆弧的第一个点与第三个点重合,则第二个点表示圆心,以此来表达圆形
COMPOUNDCURVE	复合线	由 n 个部分组成,每个部分可以是LineString 或 CircularString	前一部分的最后一个点与后续部分的第一个点重合,保证复合线对象的连续性
CURVEPOLYGON	曲面	由 n 个部分组成,每个部分是首尾相连的 CircularString 或 LineString 或 CompoundCurve	与 Polygon 类似,都表达一个闭合的区域,区别在于是否有CircularString对象参与构造
MULTICURVE	多(曲)线	由 n 个子对象组成,每个子对象可以是CircularString 或 LineString 或 CompoundCurve	/
MULTISURFACE	多面	由 n 个子对象组成,每个子对象可以是Polygon 或 CurvePolygon 类型	与 MultiPolygon类似,都表达多面对象,区别在于是否有CircularString对象参与构造
GEOMETRYCOLLECTION	复合对象	由n个任意子对象类型构成	/
(注意:以上每种类型,可以指定是否带Z或M值。例如,点可以指定为:POINT、POINTZ、POINTM、POINTZM。)
geometry的对象构成关系
点线面几何对象的关系较为清晰,当加入新的类型 CircularString 后,衍生出带参数化对象的线和面,进而构成PostGIS的全部17种子类型,见下图:
geometry的元数据
PostGIS中geometry元数据存储在geometry_columns中,通过该表可以查询出当前数据库中有哪些表存储了geometry及geometry的类型、坐标系信息。
用户在创建geometry类型时,PostGIS自动维护该表,其定义遵循OGC SFSQL(Simple Features for SQL)规范。
geometry_columns中字段信息描述如下:
f_table_catalog,f_table_schema,和f_table_name提供各个几何图形(geometry)的要素表(feature table),即空间数据表 的完全限定名称,分别是数据库名、模式名、空间数据表名。
f_geometry_column包含对应空间数据表中用于记录几何信息的属性列的列名。
coord_dimension定义几何图形的维度(2维、3维或4维)
srid会引用自spatial_ref_sys表的空间参考标识符
type列定义了几何图形的类型。比如"点(Point)"和"线串(Linestring)"等类型。
示例数据通过SQL语句查看:
————————————————
版权声明:本文为CSDN博主「supermapsupport」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/supermapsupport/article/details/123573338
                    
                
                
            
        
浙公网安备 33010602011771号