GB/T 30320-2013 地理空间数据库访问接口
- 名 称:GB/T 30320-2013 地理空间数据库访问接口 - 下载地址2
- 下载地址:[下载地址2]
- 提 取 码:
- 浏览次数:3
发表评论
加入收藏夹
错误报告
目录| 新闻评论(共有 0 条评论) |
资料介绍
ICS 07. 040 A 75
中 华 人 民 共 和 国 国 家 标 准
GB/T 30320—2013
地理空间数据库访问接口
Geospatialdatabasecall-levelinterface
2013-12-31发布 2014-06-01实施
中华人民共和国国家质量监督检验检疫总局中 国 国 家 标 准 化 管 理 委 员 会
发
布
GB/T 30320—2013
目 次
前言 Ⅴ
1 范围 1
2 规范性引用文件 1
3 术语和定义 1
4 符号和缩略语 3
4. 1 符号 3
4. 2 缩略语 3
4. 3 UML 图示符号 4
4. 4 UML多样性描述 4
5 空间数据库数据访问对象逻辑关系 5
5. 1 概述 5
5. 2 数据源 5
5. 3 数据集 5
5. 4 矢量数据集 5
5. 5 要素集 6
5. 6 栅格数据集 6
5. 7 空间数据模型 6
6 空间数据库数据访问对象描述 6
6. 1 数据源 6
6. 2 数据连接 9
6. 3 数据集 10
6. 4 数据集类型 12
6. 5 矢量数据集 13
6. 6 要素集 15
6. 7 查询对象 17
6. 8 要素 20
6. 9 字段信息 21
6. 10 字段信息集合 24
6. 11 栅格数据集 24
6. 12 波段信息 25
6. 13 像素格式 26
6. 14 像素 27
6. 15 扫描线 27
6. 16 数据块 28
7 元数据访问对象 29
Ⅰ
GB/T 30320—2013
7. 1 元数据对象逻辑关系 29
7. 2 元数据访问对象定义 30
8 空间参照系 33
8. 1 空间参照系对象逻辑关系 33
8. 2 空间参照系对象定义 34
9 数据提供者加载与卸载 35
9. 1 概述 35
9. 2 数据提供者管理器 36
9. 3 数据提供者 37
参考文献 38
图 1 GDB-CLI数据访问对象 UML 图 5
图 2 数据源相关对象 UML 图 7
图 3 数据源对象属性和方法 7
图 4 连接对象属性 9
图 5 数据集相关对象 UML 图 10
图 6 数据集对象属性和方法 11
图 7 数据集类型 12
图 8 矢量数据集相关对象 UML 图 13
图 9 矢量数据集属性和方法 14
图 10 要素集对象的方法 16
图 11 查询对象 UML 图 18
图 12 要素对象 UML 图 21
图 13 字段信息对象 UML 图 22
图 14 栅格数据集对象 UML 图 24
图 15 波段信息对象 UML 图 25
图 16 像素格式枚举对象 UML 图 26
图 17 像素对象 UML 图 27
图 18 扫描线对象 UML 图 28
图 19 数据块对象 UML 图 28
图 20 元数据对象 UML 图 30
图 21 元数据库对象属性和方法 31
图 22 元数据集对象属性和方法 32
图 23 空间参考系对象 UML 图 34
图 24 数据提供者管理器类图 36
表 1 符号对照表 3
表 2 缩写对照表 3
表 3 UML 图符号对照表 4
表 4 UML 图多样性描述 4
表 5 数据集与空间对象的存储对应关系 6
Ⅱ
GB/T 30320—2013
表 6 数据集类型描述 12
表 7 查询选项枚举 19
表 8 查询类型枚举 19
表 9 游标类型枚举 20
表 10 字段标记列表 23
表 11 字段类型描述列表 23
表 12 像素格式描述 26
Ⅲ
GB/T 30320—2013
前 言
本标准按照 GB/T 1. 1—2009给出的规则起草 。
本标准由国家测绘地理信息局提出 。
本标准由全国地理信息标准化技术委员会(SAC/TC230)归 口 。
本标准起草单位 :北京超图软件股份有限公司 、武大吉奥信息技术有限公司 、武汉中地数码科技有限公司 、中遥地网信息技术有限公司 、北京大学遥感与地理信息系统研究所 。
本标准主要起草人 :李绍俊、邓跃进、刘冬林、周芹、陈俊华、曾志明、陈国雄、李文龙、江志斌、高凤飞、谢林 。
Ⅴ
GB/T 30320—2013
地理空间数据库访问接口
1 范围
本标准规定了地理空间数据库的数据访问对象模型及接 口 ,对满足本标准接口的空间数据提供者的加载和卸载作出规定 。
本标准适用于通过标准接口访问或共享地理空间数据库的应用 ,侧重于从数据使用者和数据提供者角度描述访问对象模型及接 口 ,不适用于坐标参照系和元数据的具体内容 。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的 。凡是注 日期的引用文件 ,仅注 日期的版本适用于本文件 。凡是不注日期的引用文件 ,其最新版本(包括所有的修改单)适用于本文件 。
GB/T 19710—2005 地理信息 元数据(ISO 19115:2003,MOD)
ISO 19111:2007 地理信息 基于坐标的空间参照(Geographic information—Spatial referencing by coordinates)
ISO 19125-1:2004 地理信息 简单要素存取 第 1 部分 : 通用框架(Geographic information—
Simple feature access—Part1:Common architecture)
3 术语和定义
下列术语和定义适用于本文件 。
3. 1
地理空间数据库 geospatialdatabase
用来存贮 、管理和检索空间数据 , 表达空间实体的位置 、形状 、大小及其分布特征等方面信息的数据库 。
3.2
数据提供者 data provider
实现了地理空间数据库访问接口以及相关的配置说明的对象 。
3.3
数据提供者管理器 data providermanager
管理数据提供者的对象 ,包括对数据提供者的加载 、卸载 、查找等操作 。
3.4
数据使用者 data customer
调用地理空间数据库访问接口操作数据提供者的空间数据的对象 。数据使用者可以使用标准的接口访问不同数据提供者的空间数据 。
3.5
要素 feature
现实世界现象的抽象 。
[ISO 19101]
1
GB/T 30320—2013
注 : 要素对应于数据集或要素集中的一条记录 ,要素实例中最多有一个几何空间对象或栅格空间对象 ,但可以有多个属性值 。
3.6
空间对象 spatialobject
代表要素空间特征的对象 。
[GB/T 23707—2009] 3.7
栅格数据 rasterdata
被表示成有规则的空间阵列的数据 。
3. 8
矢量数据 vectordata
由几何元素所表示的数据 。
3.9
数据集 dataset
可以标识的数据集合 。
[ISO 19101]
注 : 数据集是由同种类型数据组成的数据集合 ,也就是一组数据对象的集合 。
3. 10
矢量数据集 vectordataset
一组矢量数据要素(feature)的集合 ,具有相同的几何对象类型 、相同的空间参照系和相同的字段信息结构 。
3. 11
栅格数据集 rasterdataset
具有长度和宽度范围的一组有规则的空间阵列数据的集合 ,这些阵列数据有相同的空间参照系 , 阵列数据值即代表对应空间位置的属性且所有值描述的是同类属性 , 比如温度 、高程值或其他 。
3. 12
数据源 datasource
由数据提供者提供的各种类型的数据集(如点 、线 、面 、影像 、格网数据集)组成的数据集集合 。一个数据源可包含一个或多个不同类型的数据集 ;一个数据源可以对应一个数据文件或者数据库 。
3. 13
要素集 featureset
对矢量数据集进行条件查询的结果集 。查询条件可以是空间关系或者属性条件 。
3. 14
游标类型 cursortype
标识要素集遍历数据的方式 。
3. 15
字段 field
表示属性信息的集合 。
3. 16
字段信息 field info
字段的相关信息 ,如名称 、类型 、长度等 。
3. 17
坐标 coordinate
用来指示 N 维空间中点的位置的数值序列 。
2
GB/T 30320—2013
[GB/T 23707—2009]
3. 18
坐标参照系 coordinatereferencesystem
通过基准与现实世界相关的坐标系 。
[ISO 19111:2007]
3. 19
大地坐标系 geodeticcoordinatesystem
位置由大地经度和纬度及大地高程(在三维的情况下)确定的坐标系 。 [ISO 19111:2007]
3.20
投影坐标系 projected coordinatesystem
由地图投影产生的二维坐标系 。
[ISO 19111:2007]
3.21
元数据 metadata
关于数据的内容 、质量 、状况和其他特性的描述性数据 。
[GB/T 19710—2005]
4 符号和缩略语
4. 1 符号
表 1 描述的符号适用于本文件 。
表 1 符号对照表
符号
含 义
~
表示在符号前后对象之间取值
|
表示符号前后项任选其 一
[]
表示括号内的对象为可选
n
表示数字
( ,)/[ ,]
表示在符号左端数值到右端数值的区间中任取其一 , () 表示开区间 ; []表示闭区间
4.2 缩略语
表 2 描述的缩略语适用于本文件 。
表 2 缩写对照表
描述符
中文名称
英文名称
GDB-CLI
空间数据库访问接 口
GeospatialDatabase Call-LevelInterface
DDL
数据定义语言
Data Definition Language
DML
数据操纵语言
Data Manipulation Language
3
GB/T 30320—2013
表 2 (续)
描述符
中文名称
英文名称
UML
统一建模语言
Unified Modelling Language
SRID
空间参照系唯一标识
SpatialReference System Identifier
UUID
通用唯一识别码
Universally Unique Identifier
4.3 UML 图示符号
本标准出现的图用 UML静态结构表示 ,所有数据模型 UML 图示中符号表示的规定见表 3。
表 3 UML 图符号对照表
符号
名称
说明
双向关联
表示 A、B两个类之间的一般关系 ,两个类都知道另一个类的公共属性和方法
单向关联
表示 A、B两个类之间的关联关系 ,A类知道 B类的公共属性和方法 ,但 B类不知道 A类的公共属性和方法
聚合
A对象拥有 B对象 ,A 对 象 可 以 包 含 B对 象 ,但 B对 象 不 是A对象的组成部分 ,二者生命周期可以不同
组合
A对象拥有 B对象 ,是整体和部分的关系 ,且生命周期一致
泛化
B对象继承 A对象 , 即 B对象由 A对象派生
依赖
A类依赖于 B类 ,B类的变化将影响 A类 。如果 A类依赖 B类 ,则 B可以体现为 A 的 局 部 变 量 、方 法 的 参 数 或 者 静 态 方法的调用
4.4 UML 多样性描述
本标准涉及的 UML 图中多样性描述含义见表 4。
表 4 UML 图多样性描述
多样性
意 义
0. . 1
0个或 1个
1
只能 1个
0. . n
0个或多个
1. . n
1个或多个
4
GB/T 30320—2013
5 空间数据库数据访问对象逻辑关系
5. 1 概述
GDB-CLI的空间数据 库 访 问 对 象 如 图 1 所 示 。 数 据 源 (GDBDataSource) 是 各 种 数 据 集 (GDB- Dataset)的容器 ,统一管理所有的数据集 。数据源和数据集可以关联相关的元数据(GDBMetaData) ,数据集还可以具有相应的空间参照系统(GDBCoordReferenceSys) 。
图 1 GDB-CLI数据访问对象 UML 图
5.2 数据源
数据源(GDBDataSource)是由各种类型的数据集(如点 、线 、面 、影像 、格网数据集)组成的数据集集合 。一个数据源可包含一个或多个相同类型的数据集 ,也可以同时管理多个不同类型的数据集 。
5.3 数据集
数据集(GDBDataset)是由相同特征的空间对象组成的数据集合 。根据对空间信息的描述方式不同而派生两大子类 :矢量数据集(GDBVectorDataset)和栅格数据集(GDBRasterDataset) 。
5.4 矢量数据集
矢量数据集是矢量要素(GDBFeature) 的聚合 ,每个要素可以有几何(GDBGeometry) 和属性(GD- BFieldValue)数据 。
对矢量数据集的查询结果可以用要素集(GDBFeatureset)表示 。
5
GB/T 30320—2013
5.5 要素集
要素集是要素的聚合 ,它是数据集中数据的一个投影或访问窗 口 。矢量数据集和要素集使用字段信息集合(GDBFieldInfos)表示属性结构信息 。
矢量数据的编辑操作包括添加或修改要素的空间或属性信息 、删除要素 。编辑操作提供两种方式 :
● 要素集方式 。对矢量数据集进行查询得到要素集(GDBFeatureset) ,通过要素集分别操作空间数据和属性数据 。参见 6. 6. 2。
● 对象方式 。 以要素(GDBFeature)为基本单元的数据操作 。通过操作矢量数据集或要素集中的要素(GDBFeature)来操作空间数据和属性数据 。参见 6. 5. 3 和 6. 6. 2。
5.6 栅格数据集
栅格数据集是按规则排列的一系列像素点或数值的聚合 ,它用一个规则格网来描述与每一个格网单元位置相对应的空间现象特征的位置和取值 ,每一个格网单元为一个像素 。栅格数据集常用来存储影像 、数字高程模型(DEM) 、格网(GRID)等数据 。
GDB-CLI通过数据块(GDBRasterBlock) 、扫描线(GDBScanline) 、像素点(GDBPixel) 三种 模 式 来访问栅格数据集中的数据 。
5.7 空间数据模型
GDB-CLI的空间数据模型采用 ISO 19125-1:2004规定的简单对象模型 ,各空间对象(GDBGeome- try)与数据集的存储对应关系见表 5。表中空间对象的 is3D()和 isMeasuered()应与数据集的 hasZDi- mension和 hasMDimension属性对应 , 即如果空间对象的 is3D()方法返回 TRUE,则应存储在 hasZDi- mension属性为 TRUE 的数据集中 ,对 Measure属性类同 。
表 5 数据集与空间对象的存储对应关系
数据集类型
空间对象类型
Point
Point,MultiPoint
Line
LineString,Line,LinearRing,MultiLineString
Region
Polygon,Triangle,MultiPolygon
Model
PolyhedralSurface
Text
Annotation Text
Compound
以上各种空间对象 ,GeometryCollection
6 空间数据库数据访问对象描述
6. 1 数据源
6. 1. 1 对象描述
数据源的职责包括 :1)建立到后台数据库或数据文件的访问链接;2)对各数据集的组织和管理(如对数据集元数据的查询 、修改 , 以及对数据集的创建 、删除等);3)数据源自身的元数据说明 。数据源的对象 UML 图见图 2。
6
GB/T 30320—2013
图 2 数据源相关对象 UML 图
数据源对象的属性和方法图见图 3。
图 3 数据源对象属性和方法
6. 1.2 属性
数据源对象的属性如下 :
7
GB/T 30320—2013
● connection:GDBConnection—数据源的连接信息 ,通过此信息打开数据源 ;
● alias:CharaterString—数据源别名 ,是当前环境下数据源实例对象的唯一标识 ;
● engineClass:Integer—数据源的引擎类型 ,与对应的数据提供者的该属性值相等 ,见 9. 3. 3;
● engineName:CharacterString—数据源的引擎名称 ;
● providerUUID:CharacterString—数据源的提供者的唯一标识 ,与对应数据提供者的 uuid属性值相等 ,见 9. 3. 3;
● description:CharacterString—数据源描述信息 ;
● version: CharaterString—数 据 源 的 版 本 名 称 , 与 对 应 数 据 提 供 者 的 version属 性 值 相 等 , 见9. 3. 3;
● metadataUUID:CharaterString—关联的元数据的唯一标识字符串 ,可以为空 ,为空则表示该数据源对象没有关联元数据 ;
● datasets:Set—数据源中的所有数据集的集合 。
6. 1.3 方法
数据源对象的方法如下 :
● Create() :Boolean—创建数据源 ,需要预先设置好 connection属性 。
● Open() :Boolean—连接数据库 ,打开数据源 ,需要预先设置好 connection属性 。
● Close() :void—关闭数据源 。
● IsOpen() :Boolean—判断数据源是否已经打开 。
● GetDataset(cDatasetName:CharacterString) :GDBDataset—通过指定名称返回数据集对象 。
● DeleteDataset(cDatasetName:CharacterString) :Boolean—通过指定名称删除数据集 。
● CreateDatasetVector( cDatasetName: CharacterString, type: GDBDatasetType) : GDBVector- Dataset—创建新的矢量数据集 。矢量数据集可以有自己的子数据集 ,参见 6. 3. 2。
● CreateDatasetRaster( cDatasetName: CharacterString, type: GDBDatasetType, format: GDB- PixcelFormat,nWidth: Integer, nHeight: Integer, nBlocksizeX: Integer, nBlocksizeY: Integer, nBandCount:Integer) :GDBRasterDataset—创建新的栅格数据集 。栅格数据集也可以有 自 己的子数据集 ,参见 6. 3. 2。
● CreateDatasetFrom(cNewName: CharacterString, refDataset: GDBDataset) : GDBDataset—通过模板数据集创建新的数据集 ,newName 为新数据集名称 ,refDataset为模板数据集 。
● CopyDataset(dataset: GDBDataset, cDatasetName: CharacterString) : GDBDataset—复 制 数 据集 ,源数据集合 srcDataset可以来自不同的数据源 ,datasetName是复制后的数据集名称 。
● IsModified() :Boolean—判断数据源对象是否有信息需要保存 。
为 TRUE, 即标识数据源已被修改 ,有信息需要保存 。
● SetModifiedFlag(bModified: Boolean= TRUE) : void—设 置 数 据 源 修 改 标 记 , 默 认 bModified
● SaveInfo() :Boolean—保存数据源信息 。
● Execute(cSQL:CharacterString) :Boolean—执行 SQL语句 , 主要用于在数据库级执行的数据操作 ,用以执行 DDL和 DML,不返回结果集 。
● CheckConnection() :Boolean—判断数据源是否仍然处于连接状态以及连接是否可用 , 主要用于数据库型的数据源 。
● Refresh() :Boolean—刷新数据源以获取最新信息 ;此外 ,如果数据库型数据源因网络连接断开导致 CheckConnection ()方法检查到数据源的连接已经失效 ,恢复网络连接后 ,可以用 Refresh
8
GB/T 30320—2013
()方法刷新数据源后继续访问数据 。
● GetDateLastUpdated() :Time—获取数据源最后修改的时间 。
● GetDateCreated() :Time—获取数据源创建的时间 。
● ChangePassword(cNewPassword:CharacterString) : Boolean—修 改 数 据 源 连 接 密 码 。 本 地 文件型数据源可以使用此接口修改数据源连接密码 。
● GetUnoccupiedDatasetName(cDatasetName: CharacterString) : CharacterString—获 取 唯 一 数据集名 ,返回数据集名称 ,该名称是该数据源中未被使用过的 。
● IsAvailableDatasetName(cDatasetName:CharacterString) :Boolean—判断数据集名是否可用 。
● TransBegin() :Boolean—开始事务 。
● TransCommit() :void—提交事务 。
● TransRollback() :void—回滚事务 。
● InitMetaDatabase() :Boolean—初始化与数据源对象关联的元数据库对象 。
● GetMetaDatabase() :GDBMetaDatabase—获取元数据库对象 。
● SetMetaUUID(cMetaUUID:CharacterString) :Boolean—给数据源设置元数据的 UUID,通过该标识就能在数据源关联的元数据库中找到对应的元数据 。
● GetMetaUUID() :CharacterString—获取数据源的元数据对象的 UUID。
● FindDatasetByMetaData(cMetaUUID: CharacterString) : GDBDataset—通 过 元 数 据 的 UUID获取 数 据 集 , 返 回 的 数 据 集 对 象 。 如 果 该 数 据 源 中 没 有 数 据 集 的 元 数 据 UUID 与 传 入 的strMetaUUID相等 ,则返回空对象 。
6.2 数据连接
6.2. 1 对象描述
数据连接对象(GDBConnection)的属性见图 4。数据源通过 GDBConnection提供的信息与数据库建立连接 。
图 4 连接对象属性
9
GB/T 30320—2013
6.2.2 属性
数据连接对象的属性如下 :
● server:CharacterString—服务名 。例 如 : 对 网 络 数 据 库 型 数 据 源 , 表 示 Oracle 数 据 库 的 实 例名 ,或者 SQL Sever的服务器名 ;对本地文件型数据源 ,该属性为文件路径 ;对网络服务型数据源 ,该属性为网络服务地址 。
● user:CharacterString—用户名 。
● password:CharacterString—密码 。
● readOnly:Boolean—是否只读打开 。 只读打开后数据所有的信息都不可修改 。
● transacted:Boolean—是否以事务方式打开 。
● exclusive:Boolean—是否独占打开 。
● authorization:Boolean—数据库是否需要密码打开 。
● database:CharacterString—数据库名 。
● driver:CharacterString—驱动程序名称 ,例如不同数据库的 ODBC 驱动名称 。
● pipe:Boolean—是否用命名管道中连接方式 ,MySQL数据库连接时使用 。
● port:Integer—连接端 口 ,例如 MySQL中普通连接方式的端口号 。
● connMaxNum:Integer—数据库连接池的最大连接数 。
● connMinNum:Integer—数据库连接池的最小连接数 。
● connIncNum:Integer—数据库连接池的增长连接数 。
6.3 数据集
6.3. 1 对象描述
数据集与相关对象关联的 UML 图见图 5,数据集对象的方法和属性见图 6。
图 5 数据集相关对象 UML 图
10
GB/T 30320—2013
图 6 数据集对象属性和方法
6.3.2 属性
数据集对象的属性如下 :
● datasetName:CharacterString—数据集名称 。
● tableName:CharacterString—数据集在数据库中的数据表名称 。
● datasetType:GDBDatasetType—数据集类型 ,为枚举值 。见 6. 4。
● rcBounds:GDBGeometry—数据集范围 。
● isRaster:Boolean—是否是栅格数据集 。
● parentDataset:GDBDataset—数据集的父数据集 。
● childDatasets:Set—数据集的子数据集集合 。子数据集强依赖于父数据集 ,如果父数据集消亡 ,则其子数据集也随之消亡 ,例如 :栅格数据集的影像金字塔 ,可以将金字塔作为原栅格数据集的子数据集集合存储和管理 ,从而维护二者的关系 。
● datasource:GDBDataSource—数据集所在的数据源对象 。
● spatialReferenceSys:GDBCoordReferenceSys—数据集空间参照系信息 。
● description:CharactorString—数据集的描述信息 。
● metadataUUID:CharacterString—数据集关联的元数据的唯一标识 。
6.3.3 方法
数据集对象的方法如下 :
11
GB/T 30320—2013
● Open() :Boolean—打开数据集 ;
● Close() :void—关闭数据集 ;
● IsOpen() :Boolean—判断数据集是否已经打开 ;
● IsReadOnly() :Boolean—数据是否能够被修改 ;
● Rename () :Boolean—数据集重命名 ;
● ComputeBounds () :Boolean—计算数据集范围 ,一般在数据集中元素被删除或修改后使用 ;
● IsModified() :Boolean—判断数据集对象是否有信息需要保存 ;
● SetModifiedFlag(bModified: Boolean= TRUE) : void—设 置 数 据 集 修 改 标 记 , 默 认 bModified
为 TRUE, 即标识数据集已被修改 ,有信息需要保存 ;
● SaveInfo() :Boolean—保存数据集信息 ;
● RefreshInfo() :Boolean—刷新数据集信息 ;
● GetDateLastUpdated() :Time—获取数据集最后修改的时间 ;
● GetDateCreated() :Time—获取数据集创建的时间 ;
● GetMetadata() :GDBMetadata—获取数据集元数据对象 。
6.4 数据集类型
在 GDB-CLI中矢量数据集包括 7种 :纯属性数据集 、点数据集 、线数据集 、面数据集 、模型数据集 、文本数据集 、复合数据集 ;栅格数据集包括 2 种 :GRID数据集 、Image数据集 。数据集类型以枚举对象提供 ,见图 7。每种类型的描述信息见表 6。
图 7 数据集类型
表 6 数据集类型描述
类 型
描 述
Unknown
未知类型 ,用于标记不识别的数据集
Tabular
仅包含属性信息 ,没有空间数据的数据集
Point
点数据集 ,存储点对象
12
GB/T 30320—2013
表 6 (续)
类 型
描 述
Line
线数据集 ,存储线对象
Polygon
面数据集 ,存储面对象
Model
模型数据集 ,存储三维场景中的模型对象 ,一般包括模型的骨架和纹理等信息
Annotation
文本标注数据集 ,存储文本对象
Compound
复合数据集 ,可以存储多种类型的要素对象
Image
影像数据集 ,像素值代表颜色值
Grid
格网数据集 ,像素值具有具体的含义 ,如代表高程值 、降雨量或光照量等
6.5 矢量数据集
6.5. 1 对象描述
矢量数据集是矢量要素(Feature)的集合 , 同一数据集中的要素具有相同的属性特征 。矢量数据集相关的对象 UML 图见图 8。矢量数据集的属性和方法见图 9。
图 8 矢量数据集相关对象 UML 图
13
GB/T 30320—2013
图 9 矢量数据集属性和方法
6.5.2 属性
矢量数据集对象的属性如下 :
● featuresets: Set< GDBFeatureset>—数 据 集 查 询 出 来 的 要 素 集 的 集 合 。 由 数 据 集 对 象 统 一管理 。
● hasZDimension:Boolean—是否带有 Z属性 ,如果带有 Z属性则存储带高程值(Z)的空间对象 。
● hasMDimension:Boolean—是否带有 M 属 性 , 如 果 带 有 M 属 性 则 存 储 带 度 量 值(M) 的 空 间对象 。
6.5.3 方法
矢量数据集对象的方法如下 :
● GetFeatureCount() :Integer—数据集中要素个数 。
● AddFeature(feature:GDBFeature) :Boolean—向数据集中添加新的 Feature。
● UpdateFeature(feature:GDBFeature) :Boolean—根据 feature的 ID更新要素 。
● DeleteFeature(nID:Integer) :Boolean—删除指定 ID 的要素 。
● DeleteFeatures(IDs:Set) :Boolean—删除 ID包含在传入 ID集合中的要素 。
● GetFeature(nID:Integer) :GDBFeature—获取指定 ID 的要素 。
● Append(featureset:GDBFeatureset) :Boolean—追加要素集 。
● DeleteAllFeatures() :Boolean—清空数据集中所有要素 。
● BuildSpatialIndex() :Boolean—创建空间索引 。
14
GB/T 30320—2013
● DropSpatialIndex() :Boolean—删除空间索引 。
● IsSpatialIndexDirty() :Boolean—判断空间索引是否为脏 。
● Query(querydef:GDBQueryDef&) :GDBFeatureset—根据指定条件查询数据集 。
● ReleaseFeatureset(pRecordset:GDBFeatureset) :Boolean—释放指定的要素集 。
● ReleaseAllFeaturesets() :void—释放所有查询出来的要素集 。
● UpdateField(cFieldName:CharacterString,cExpress:CharacterString,cFilter:CharacterString) :Bool- ean—根据表达式和过滤条件更新字段值 。
● CopyField(cSrcFieldName: CharacterString, cDestFieldName: CharacterString) : Boolean—复制字段值 , 目的字段名应都存在且目的字段要与源字段类型匹配 。
● CreateFieldIndex(cFieldNames:Set,cIndexName:CharacterString) :Boolean—创建字段索引 。
● DropFieldIndex(cIndexName:CharacterString) :Boolean—删除指定索引名称的字段索引 。
● CreateFields(fieldInfos:GDBFieldInfos) :Boolean—创建字段 。
● DeleteField(cFieldName:CharacterString) :Boolean—删除指定名字的字段 。
Boolean—获取字段信息 。bSystemFieldExcluded表示是否将系统字段一起返回 。
● GetFieldInfos ( fieldInfos: GDBFieldInfos, bSystemFieldExcluded: Boolean = FALSE) :
● GetFieldInfo(cFieldName:CharacterString,fieldInfo:GDBFieldInfo) :Boolean—根据字段名获取字段信息 。
● SetFieldInfo ( cFieldName: CharacterString, fieldInfo: GDBFieldInfo) : Boolean—设 置 字 段信息 。
● Statistic(cFieldName: CharacterString,nMode: GDBFeatureset: : GDBStatisticMode) : Variant—统 计字段信息 。
● GetUnoccupiedFieldName(cFieldName: CharacterString) : CharacterString—获 取 新 的 合 法 的字段名 。
● IsAvailableFieldName(cFieldName: CharacterString) : Boolean—判 断 输 入 的 字 段 名 称 是 否 可以作为新的字段名 。
6.6 要素集
6.6. 1 对象描述
要素集(GDBFeatureset)是矢量数据集的一个子集 。要素集可以是根据一定的条件对矢量数据集(GDBDatasetVector)进行查询得到的结果集 。要素集是访问矢量数据的主要对象 ,可以通过要素集获取 、修改和存储矢量数据 。要素集对象的方法见图 10。
15
GB/T 30320—2013
图 10 要素集对象的方法
6.6.2 方法
要素集对象的方法如下 :
● IsEmpty() :Boolean—判断要素集是否为空 。
● IsBOF() :Boolean—判断游标位置是否已在表头 。
● IsEOF() :Boolean—判断游标位置是否已在表尾 。
● SeekID (nID:Integer) :Boolean—将游标移动到指定 ID 的位置 。
● Move (fromPosition: GDBFeatureset: : MovePosition= GDBFeatureset: : Current, nRows: In-
移动 ,小于 0 时向前移动 ;参数 fromPosition为 GDBFeatureset: :MovePosition类型 ,表示移动
teger= 1) :Boolean—将游标移动到指定位置 。参数 nRows表示移动的记录数 , 大于 0 时向后
的起始位置 ,为枚举常量 ,包含 :Begin—开始位置 ,Current—当前位置 ,End—结尾位置 。
● GetID () :Integer—获取当前记录的 ID。
● GetGeometry() :GDBGeometry—获取当前位置的空间对象 。
● GetFieldValue( cName: CharacterString, varVal: Variant) : Boolean—获 取 当 前 名称 的 字 段的值 。
● GetFieldValue(nIndex:Integer,varVal:Variant) :Boolean—获取当前位置指定字段的值 。
● Find(cFilter: CharacterString, nFindMode: GDBFeatureset: : FindMode) : Boolean—查 找 指 定
式 ,查找当前模 式 下 满 足 条 件 的 记 录 。 GDBFeatureset: : FindMode 为 枚 举 常 量 , 表 示 查 找 模
条件的记录 。cFilter为查询条件 ,例如 “ID= 5”,查找 ID 为 5 的记录 ; nFindMode 为查找模
式 ,包括 :First—第一个 ,Last—最后一个 ,Next—下一个 ,Previous—上一个 。
● GetFeatureCount() :Integer—要素数目 。
● GetFieldInfos() :GDBFieldInfos—结果集字段信息 。
16
GB/T 30320—2013
● GetFieldInfo(in cName: CharacterString, outfieldInfo: GDBFieldInfo) : Boolean—通 过 字 段 名获取字段信息 。
● CopyField(cSrcExpression: CharacterString, cDestFieldName: CharacterString) : Boolean—复制字段值 。
● Statistic(cFieldName: CharacterString, nMode: GDBFeatureset: : StatisticMode) : Variant—对指定的字段进行数理统计 。 GDBFeatureset: : StatisticMode为枚举类型 ,包括 : Max—最大值 , Min—最小 值 , Average—平 均 值 , Summary—求 和 , StandardDeviation—标 准 差 , Variance—方差 。
● Refresh () :Boolean—重新执行查询刷新要素集 。
● ComputeBounds(rc2Bounds:GDBGeometry) :Boolean—计算要素集的范围 。
● GetFeature() :GDBFeature—获取当前要素的 Feature。
● UpdateFeature(feature:GDBFeature) :Boolean—更新当前要素 。
● AddFeature(feature:GDBFeature) :Boolean—添加新的 Feature。
● CanUpdate() :Boolean—是否能够修改要素集 。
●(●) Ed(Ad)it(d)N()e:B(w)o(g)le(eo)a:n(G)—D开始(BG)eo改数(etry),据(b)R。eturnID:Boolean= FALSE) :Integer—增加新记录 。
● SetGeometry(geo:GDBGeometry) :Boolean—改写当前记录的几何对象 。
● SetFieldValue(cName:CharacterString,varVal:Variant) :Boolean—根据名称更新当前记录的属性数据 。
● SetFieldValue(nIndex:Integer, varVal: Variant) : Boolean—根 据 索 引 号 更 新 当 前 记 录 的 属 性数据 。
● Update() :Integer—更新 ,提交修改 。
● CancelUpdate() :Boolean—取消当前要素的修改操作 。
● Delete() :Boolean—删除当前记录 。
● DeleteAll() :Boolean—删除所有记录 。
● GetDataset() :GDBDatasetVector—获取要素集对应的数据集 。
● Close() :void—关闭要素集 。
6.7 查询对象
6.7. 1 对象描述
查询对象(GDBQueryDef) ,用以构造查询参数 。GDBVectorDataset的 Query方 法 中 传 入 此 对 象进行查询 ,得到结果要素集 GDBFeatureset。查询对象的 UML 图见图 11。
17
GB/T 30320—2013
图 11 查询对象 UML 图
6.7.2 属性
查询对象的属性如下 :
● filter:CharacterString—查询过滤条件 ;
● sort:CharacterString—排序子句 ;
● group:CharacterString—分组子句 ;
● fields:Set—需要查询的字段列表 ;
● joinItems:Set—关联查询条件设置 ;
● rc2Bounds:GDBGeometry—二维矩形定义的查询范围 ,范围查询使用 ;
● IDs:Set—需要查询的 ID列表 ;
● IDFieldName:CharacterString—ID字段名称 ;
● geometry:Geometry—用来空间查询的空间对象 ;
● options:QueryType—查询选项 ;
● queryType:QueryType—查询类型 ;
● cursorType:CursorType—游标类型 ;
● cursorLocation:CursorLocation—游标位置 ;
● distUnit:Integer—距离查询单位 ;
● distance:Double—距离值 ,距离查询使用 ;
● joinItems:Set—关联查询条件 。
6.7.3 查询选项
查询选项(GDBQueryDef:QueryOption) ,枚举类型见表 7。
18
GB/T 30320—2013
表 7 查询选项枚举
类 型
描 述
Geometry
仅查出空间对象
Attribute
仅查出属性数据
Both
空间对象和属性同时查询
6.7.4 查询类型
查询类型(GDBQueryDef:QueryType) ,枚举类型见表 8。
表 8 查询类型枚举
类 型
描 述
General
一般的属性条件查询
Bounds
使用地理范围矩形查询
IDs
指定 ID数组查询
Distance
距离查询
Identical
空间查询 : 同 一 。返回被搜 索 图 层 中 与 搜 索 对 象 完 全 相 同 的 对 象 , 包 括 对 象 类 型和坐标
Disjoint
空间查询 :相离 。返回被搜索图层中与搜索对象相离的对象
Intersects
空间查询 :交叠 。如果搜索 对 象 是 面 , 返 回 全 部 或 部 分 被 搜 索 对 象 包 含 的 对 象 以及全部或部分包含搜索对象 的 对 象 ; 如 果 搜 索 对 象 不 是 面 , 返 回 全 部 或 部 分 包 含搜索对象的对象(面)
Touches
空间查询 :接触 。返回被搜索图层中其边界与搜索对象边界相触的对象
Overlaps
空间查询 :重叠 。返回被搜索图层中与搜索对象部分有重叠的对象
Crosses
空间查询 :相交 。返回被搜索图层中与搜索对象(线或面) 相 交 的 所 有 对 象(点 、线或面)
Within
空间查询 :被包含 。返回被搜索图层中包含搜索对象的对象 。
如果返回的对象是面 ,其应全部包含(包括边接触)搜索对象 ;
如果返回的对象是线 ,其应完全包含搜索对象 ;
如果返回的对象是点 ,其应与搜索对象重合
Contains
空间查询 :包含 。返回被搜索图层中被搜索对象包 含 的 对 象 。包 括 在 搜 索 对 象 边界上的情况
ExtentIntersect
空间查询 :边界矩形相交 。返回被搜索图层中其边界矩形 与 搜 索 对 象 的 边 界 矩 形相交但其自身不与搜索对象相交的所有对象
CommonPoint
空间查询算子 。返回被搜索图层中与搜索对象至少有一个公共节点的所有对象
CommonSegment
空间查询算子 。返回被搜索 图 层 中 与 搜 索 对 象 至 少 有 一 条 公 共 边(完 全 重 合 , 即在重合的边上共所有节点(顶点 Vertex或端点 Endpoint))的所有对象
CentroidInPolygon
空间查询算子 。返回被搜索图层中内点在搜索对象内部的面对象
19
GB/T 30320—2013
6.7.5 游标类型
游标类型(GDBQueryDef:CursorType) ,枚举类型见表 9。
表 9 游标类型枚举
类 型
描 述
OpenUnspecified
未定义的游标类型
OpenForwardOnly
只向前游标
OpenKeyset
关键集游标
OpenDynamic
动态游标 ,可编辑
OpenStatic
静态游标 ,不可编辑
6.7.6 游标位置
游标位置(GDBQueryDef:CursorLocation) ,枚举类型如下 :
● UseDefault—不指定游标位置 ;
● UseServer—服务器端游标 ;
● UseClient—使用客户端游标 。
6.7.7 关联条件
关联条件(GDBJoinItem) ,其属性如下 :
● name:CharacterString—关联对象本身的名称 ,主要起标识作用 。
● foreignTable:CharacterString—外部关联表 ;
● joinFilter:CharacterString—关联条件 ;
● joinType:JoinType—连接类型 。
连接类型(GDBJoinItem :JoinType)的枚举类型如下 :
● InnerJoin—内连接 ;
● LeftJoin—左连接 ;
● RightJoin—右连接 ;
● FullJoin—全连接 。
6. 8 要素
6. 8. 1 对象描述
要素是矢量数据集中的基本数据单元 ,一个矢量数据集由多个要素构成 。要素的对象 UML 图见图 12。
20
GB/T 30320—2013
图 12 要素对象 UML 图
6. 8.2 方法
要素对象的方法如下 :
● GetID() :Integer—要素的 ID;
● SetID(nID:Integer) :void—设置要素的 ID;
● GetGeometry() :GDBGeometry—要素的几何对象 ;
● SetGeometry(geo:GDBGeometry) :Boolean—设置要素的几何对象 ;
● GetValue(nIndex: Integer, out varValue: Variant) : Boolean—根 据 索 引 号 获 取 要 素 的 属 性 字段值 ;
● GetValue(incFieldName:CharacterString,outvarValue:Variant) :Boolean—根据字段值获取要素的属性字段值 ;
● SetValue(nIndex:Integer,varValue:Variant) :Boolean—根据索引号设置字段值 ;
● SetValue( cFieldName: CharacterString, varValue: Variant) : Boolean—根 据 字 段 名设 置 字段值 。
6.9 字段信息
6.9. 1 对象描述
矢量数据集中的一列为一个字段 ,字段信息定义了列中的数据的类型 、长度 、是否必填等信息 。字段信息的对象 UML 图见图 13。
21
GB/T 30320—2013
图 13 字段信息对象 UML 图
6.9.2 属性
字段信息对象的属性如下 :
● name:CharacterString—字段名称 ;
● foreignName:CharacterString—字段的外键名 ;
● size:Integer—字段长度 ;
● scale:Integer—字段的刻度 ;
● precision:Integer—字段的精度 ;
● defaultValue:CharacterString—字段的默认值 ;
● isAllowZeroLength:Boolean—字段长度是否允许为零 ;
● isRequired:Boolean—是否为必填字段 ;
22
GB/T 30320—2013
● updatable:Boolean—字段是否可编辑 ;
● fieldSign:GDBFieldSign—字段标记 ;
● fieldType:GDBFieldType—字段类型 。
6.9.3 字段标记
字段标记(GDBFieldSign)用于标记字段在要素中的意义 。其枚举类型见表 10。
表 10 字段标记列表
字段标记
描 述
signNone
普通字段
signNodeID
结点 ID字段 ,主要用于标记网络数据集的结点字段
signFNode
弧段起始结点 ID字段 ,主要用于标记网络数据集弧段的起始结点的 ID字段
signTNode
弧段终止结点 ID字段 ,主要用于标记网络数据集弧段的终止结点的 ID字段
signEdgeID
弧段 ID字段 ,主要用于标记网络数据集弧段的 ID字段
signRouteID
路由 ID字段 ,主要用于标记路由数据集的 ID字段
signID
要素的 ID字段
signGeometry
要素的 Geometry字段
6.9.4 字段类型
字段类型(GDBFieldType)枚举类型及其描述见表 11。
表 11 字段类型描述列表
类型
长度(字节)
取值范围
描述
Boolean
1
[True|False]
布尔型
Byte
1
[0,256]
单字节
Char
n
—
定长字符串
Int16
2
[ -32 768,32 767]
短整型
UInt16
2
[0,65 535]
无符号短整型
Int32
4
[-2 147483648,2 147483647]
整型
UInt32
4
[0,4 294 967295]
无符号整型
Int64
8
[ -263 , (263 -1)]
长整型
UInt64
8
[0, (264 -1)]
无符号长整型
Float
4
[ -3. 4* 10- 38 ,3. 4* 1038]
单精度浮点型
Double
8
[ -1. 7* 10-3081. 7* 10308]
双精度浮点型
Text
n
—
变长字符串
Date
4
—
日期型
Time
4
—
时间型
TimeStamp
8
—
日期时间型
Binary
n
—
固定长度二进制型 ,需指定长度
LongBinary
—
—
不定长二进制类型
相关推荐
- GB/T 32201-2015 气体流量计
- GB/T 37125-2018 硫铝酸盐水泥熟料
- GB/T 25120-2023 轨道交通 机车车辆牵引变压器和电抗器
- GB/T 22627-2014 水处理剂 聚氯化铝
- GB/T 25820-2018 包装用钢带
- GB∕T 19473.1-2020 冷热水用聚丁烯(PB)管道系统 第1部分:总则
- GB/T 18844-2002 滑动轴承 损坏和外观变化的术语、特征及原因
- GB∕T 40095-2021 智能变电站测控装置技术规范
- GB/T 28807.2-2017 轨道交通 机车车辆和列车检测系统的兼容性 第2部分:与轨道电路的兼容性
- GB 21346-2022 电解铝和氧化铝单位产品能源消耗限额

