文章目录
由于是其他的GIS软件使用esri filegeodatabase api写gdb,所以有必要先学习一下简单要素模型,便于后面写简单的点、多点、线、多线、面、多面等要素类。
1.SFS概述
简单要素规范(OpenGIS® Simple Features Interface Standard, SFS)
1.1定义
1. 简单要素的几何形态
2. 简单要素的发布、存储、读取等操作
1.2内容
1. Common architecture -体系结构
描述了简单要素模型的通用模型,定义了表示客观世界的体系结构,定义了几何对象模型
3. SQL option -SQL语言
描述了SQL对于简单要素模型的实现
2.简单要素规范
包括点、线、面、多点、多线、多面六类
1. 点(Point):单独点构成的空间实体
2. 多点(MultiPoint):多个坐标点构成的空间实体
3. 线(LineString):一条线(单线、可闭合)
4. 多线(MultiLineString):多线
5. 面(Polygon):有1个外环和n个内环构成的单面
6. 多面(MultiPolygon):多个相离的面构成的多面
3.几何对象模型
对点、线、面、多点、多线、多面、几何集合、立方体、TIN三角网以及三维等模型的定义。
3.1几何对象关系结构
3.2空间操作规范
4.SQL Option
4.1Schema
OGC规定了空间数据库中需要的schema对象,包括存储和管理几何字段、空间参考等。
1. GEOMETRY_COLUMNS表:记录几何字段信息
2. SPATIAL_REF_SYS表:记录空间参考系
4.2几何对象存储
几何信息存储在一个Geometry表中,通过GID与Feature表相关联。
4.3空间操作
包括:
1. ST_GeometryType:获取几何类型
2. ST_Boundary:获取边界
3. ST_Enbelope:获取矩形范围
......等
5.WKT&WKB
5.1WKT
WKT(well-know text)使用文本的格式描述几何对象,常见的7种类型示例:
WKT除了描述几何对象,还可以描述空间参考
5.2WKB
WKB(well-know binary),是WKT的二进制表示方式。
通过==序列化(把对象转化为可传输的字节序列)==字节对象来描述几何对象
WKB中的数据类型:
1. uint32
无符号整数,占4个字节,用于存储节点数、几何对象等信息
2. double
双精度,占8个字节,用于存储节点坐标值
几何对象类型对于的整数如下表:
WKB在第一位存储了一个额外的字节用来标识字节符