DatasetVector类参考

矢量数据集类。 更多...

继承自Dataset

所有成员的列表。

公有成员

(Recordset *) - query:
 通过设置查询条件对矢量数据集进行查询,该方法默认查询空间信息与属性信息。
(Recordset *) - queryWithGeometry:BufferDistance:Type:
 用于查询数据集中落在指定空间对象的缓冲区内的记录。
(Recordset *) - queryWithGeometry:BufferDistance:Filter:Type:
 用于查询数据集中落在指定空间对象的缓冲区内,并且满足一定条件的记录。
(Recordset *) - queryWithID:Type:
 根据 ID 进行查询。
(Recordset *) - queryWithBounds:Type:
 用于查询落在已知空间范围内的记录。
(Recordset *) - queryWithBounds:Filter:Type:
 用于查询落在已知空间范围内,并且满足一定条件的记录。
(Recordset *) - queryWithFilter:Type:
 利用查询条件查询数据。该方法默认查询空间数据与属性数据。
(Recordset *) - recordset:cursorType:
 根据给定的参数来返回空的记录集或者返回包括所有记录的记录集对象。
(double) - statisticWithName:mode:
 通过字段名称指定字段,对指定的字段按照给定的方式进行统计。
(double) - statisticWithIndex:mode:
 对指定的字段按照给定的方式进行统计。
(BOOL) - append:
 用于将记录集 <Recordset> 追加到矢量数据集 <DatasetVector> 中。
(BOOL) - append:titleName:
 用于将记录集 <Recordset> 按图幅名字追加到矢量数据集 <DatasetVector> 中,要求该矢量数据集的空间索引为图库索引,追加后记录集中的所有记录将作为图库索引的一幅。
(BOOL) - fromGeoJSON:
 从GeoJSON字符串中获取几何对象,并将其存入数据集中
(BOOL) - isAvailableFieldName:
(NSString *) - toGeoJSON:startID:endID:
 将数据集中指定起止SmID的对象,转换成GeoJSON格式的字符串
(int) - fromGeoJSONFile:
(int) - toGeoJSONFile:
(BOOL) - buildSpatialIndex:
 建立空间索引
(BOOL) - buildSpatialIndexWithType:
(BOOL) - dropSpatialIndex
 清除空间索引,为没有索引的状态
(BOOL) - reBuildSpatialIndex
 根据当前索引状态重建索引
(BOOL) - updateSpatialIndex
 脏数据的空间索引更新
(BOOL) - isSpatialIndexDirty
 是否需要重建空间索引
(BOOL) - isSpatialIndexTypeSupported:
(SpatialIndexType- getSpatialIndexType
(Rectangle2D *) - computeBounds
(BOOL) - buildFieldIndex:indexName:
 新建字段索引
(BOOL) - dropFieldIndex:
 删除字段索引
(GeoLine *) - convertToLine
 将点数据集中的所有点转换成线对象,仅支持点数据集
(GeoLine *) - convertToLineWithFieldName:fieldValue:
 将点数据集中的有相同字段值的点转换成线对象,仅支持点数据集
(BOOL) - deleteRecords:
 通过ID数组删除数据集中的记录
(void) - queryByFilter:geoRegion:count:
 空间查询,查询指定空间范围内符合字段条件的记录
(void) - queryByKeyword:keywords:geoRegion:count:
 属性查询,查询指定字段之中包含关键字的记录

属性

NSInteger fieldCount
 获取矢量数据集中字段的数目。
FieldInfosfieldInfos
 获取字段信息集合的对象。即数据集属性表中所有字段的信息。
DatasetVectorchildDataset
 获取子数据集。
id< QueryDelegatedelegate
 查询回调

详细描述

矢量数据集类。

用于对矢量数据集进行描述,并对之进行相应的管理和操作。对矢量数据集的操作主要包括数据查询、修改、删除、建立索引等。

用户在对矢量数据集进行操作之前,需要先打开该数据集,即调用打开数据集的方法—— [Dataset open] 方法。


成员函数文档

- (BOOL) append: (Recordset *)  recordset  

用于将记录集 <Recordset> 追加到矢量数据集 <DatasetVector> 中。

追加时,记录集与矢量数据集中字段名相同的字段直接追加,矢量数据集中没有而记录集中有的字段将跳过不处理。

执行完追加后 recordset 会指向最后一条记录的后面,即 isEOF 方法为 true。

参数:
recordset 要追加的记录集对象。
返回:
一个布尔值,指示记录集是否追加成功,追加成功返回true,否则返回false。
- (BOOL) append: (Recordset *)  recordset
titleName: (NSString *)  strTitle 

用于将记录集 <Recordset> 按图幅名字追加到矢量数据集 <DatasetVector> 中,要求该矢量数据集的空间索引为图库索引,追加后记录集中的所有记录将作为图库索引的一幅。

追加时,记录集与矢量数据集中字段名相同的字段直接追加,矢量数据集中没有而记录集中有的字段将跳过不处理。该方法一般用于标准图幅数据入库过程。

执行完追加后 recordset 会指向最后一条记录的后面,即 isEOF 方法为 true。

参数:
recordset 要追加的记录集对象。
strTitle 新增的图幅名称标记。
返回:
一个布尔值,指示记录集是否追加成功,追加成功返回true,否则返回false。
- (BOOL) buildFieldIndex: (NSArray *)  arrFieldNames
indexName: (NSString *)  indexName 

新建字段索引

- (BOOL) buildSpatialIndex: (SpatialIndexInfo *)  spatial  

建立空间索引

评论:
此方法只能用来建立四叉树索引和R树索引,图幅索引见其他的函数,如果是IDXNone 那么默认重建四叉树索引和R树索引
- (BOOL) buildSpatialIndexWithType: (SpatialIndexType spatialIndexType  
- (Rectangle2D*) computeBounds  
- (GeoLine *) convertToLine  

将点数据集中的所有点转换成线对象,仅支持点数据集

若不是点数据集,会抛出异常。若点数据集中少于两个点,则返回null

返回:
GeoLine 转换成功,返回转换后的线对象;否则返回null
- (GeoLine *) convertToLineWithFieldName: (NSString *)  fieldName
fieldValue: (NSString *)  fieldValue 

将点数据集中的有相同字段值的点转换成线对象,仅支持点数据集

若不是点数据集,会抛出异常。若点数据集中不存在指定的字段或没有包含该字段值的点,以及匹配结果少于两个点,则返回null

参数:
fieldName 字段名
fieldValue 字段值
返回:
GeoLine 转换成功,返回转换后的线对象;否则返回null
- (BOOL) deleteRecords: (NSArray *)  idArray  

通过ID数组删除数据集中的记录

参数:
idArray int型数组idArray
返回:
YES代表删除成功,NO则失败
- (BOOL) dropFieldIndex: (NSString *)  indexName  

删除字段索引

- (BOOL) dropSpatialIndex  

清除空间索引,为没有索引的状态

- (BOOL) fromGeoJSON: (NSString *)  geoJSON  

从GeoJSON字符串中获取几何对象,并将其存入数据集中

仅支持点、线、面数据集,获取点、线、面对象

参数:
geoJSON GeoJSON格式的字符串
返回:
获取成功,返回true;否则,返回false
- (int) fromGeoJSONFile: (FILE *)  file  
- (SpatialIndexType) getSpatialIndexType  
- (BOOL) isAvailableFieldName: (NSString *)  fieldName  
- (BOOL) isSpatialIndexDirty  

是否需要重建空间索引

评论:
规定:如果没有索引返回FALSE,有索引看索引的情况
- (BOOL) isSpatialIndexTypeSupported: (SpatialIndexType spatialIndexType  
- (Recordset*) query: (QueryParameter *)  queryParamter  

通过设置查询条件对矢量数据集进行查询,该方法默认查询空间信息与属性信息。

该方法是线程安全的,线程安全级别为 level2。

参数:
queryParamter 定义的查询条件。
返回:
查询的记录集。
- (void) queryByFilter: (NSString *)  attributeFilter
geoRegion: (Geometry *)  geoRegion
count: (NSInteger)  count 

空间查询,查询指定空间范围内符合字段条件的记录

参数:
attributeFilter 查询的条件,比如说 Kind=2008
geoRegion 查询的区域
count 返回的查询结果个数,默认10个,超过100按100算
- (void) queryByKeyword: (NSString *)  fieldName
keywords: (NSString *)  keywords
geoRegion: (Geometry *)  geoRegion
count: (NSInteger)  count 

属性查询,查询指定字段之中包含关键字的记录

参数:
fieldName 查询的字段名,如Name, Name_PY, Name_PYSZM,即名称字段,名称拼音字段,名称拼音首字母字段
keywords 对查询字段做查询的关键字
geoRegion 可以指定范围,如果为NULL,则表示全范围查询
count 返回的查询结果个数,默认10个,超过100按100算
- (Recordset *) queryWithBounds: (Rectangle2D *)  bounds
Filter: (NSString *)  filter
Type: (CursorType type 

用于查询落在已知空间范围内,并且满足一定条件的记录。

参数:
bounds 已知的空间范围。
filter 查询过滤条件,相当于 SQL 语句中的 Where 子句部分。
type 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读。
返回:
查询的记录集。
- (Recordset *) queryWithBounds: (Rectangle2D *)  bounds
Type: (CursorType type 

用于查询落在已知空间范围内的记录。

参数:
bounds 已知的空间范围。
type 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读。
返回:
查询的记录集。
- (Recordset *) queryWithFilter: (NSString *)  filter
Type: (CursorType type 

利用查询条件查询数据。该方法默认查询空间数据与属性数据。

对于 UDB 引擎,当用户传入字符串型时间字段并用此时间值构造查询条件时,需遵循以下规则:将时间值格式化到 ”to_data()” 字符串的括号中,例如,时间值 "2008-5-12 14:28:00",写为 "to_date(2008-5-12 14:28:00)",注意括号中时间值无需引号。

参数:
filter 查询条件,相当于 SQL 语句中的 Where 子句。
type 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读属性。
返回:
查询得到的记录集。
- (Recordset *) queryWithGeometry: (Geometry *)  geometry
BufferDistance: (double)  bufferDistance
Filter: (NSString *)  filter
Type: (CursorType type 

用于查询数据集中落在指定空间对象的缓冲区内,并且满足一定条件的记录。

参数:
geometry 用于查询的空间对象。
bufferDistance 缓冲区的半径。
filter 查询条件,通常是一个 SQL 语句。
type 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读。
返回:
查询的记录集。
- (Recordset *) queryWithGeometry: (Geometry *)  geometry
BufferDistance: (double)  bufferDistance
Type: (CursorType type 

用于查询数据集中落在指定空间对象的缓冲区内的记录。

参数:
geometry 用于查询的空间对象。
bufferDistance 缓冲区的半径。
type 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读属性。
返回:
查询的记录集。
- (Recordset *) queryWithID: (NSArray *)  idArray
Type: (CursorType type 

根据 ID 进行查询。

参数:
idArray 数组。
type 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读。
返回:
查询的记录集。
- (BOOL) reBuildSpatialIndex  

根据当前索引状态重建索引

- (Recordset*) recordset: (BOOL)  isEmptyRecordset
cursorType: (CursorType cursorType 

根据给定的参数来返回空的记录集或者返回包括所有记录的记录集对象。

参数:
isEmptyRecordset 给定的判断是否返回空的记录集参数。为 true 时返回空记录集。为 false 时返回包含所有记录的记录集合对象。
cursorType 指定的游标类型,以便用户控制查询出来的记录集的属性。当游标类型为动态时,记录集可以被修改,当游标类型为静态时,记录集为只读。
返回:
isEmptyRecordset 参数为 true 时返回空的记录集;false 时返回包含所有记录的记录集。
- (double) statisticWithIndex: (NSInteger)  fieldIndex
mode: (StatisticMode mode 

对指定的字段按照给定的方式进行统计。

当前版本提供了6种统计方式。统计字段的最大值,最小值,平均值,总和,标准差,以及方差。

当前版本支持的统计字段类型为布尔,字节,双精度,单精度,16位整型,32位整型。

参数:
fieldIndex 要统计的字段索引值。
mode 统计方式。
返回:
统计结果。
- (double) statisticWithName: (NSString *)  fieldName
mode: (StatisticMode mode 

通过字段名称指定字段,对指定的字段按照给定的方式进行统计。

当前版本提供了6种统计方式。统计字段的最大值,最小值,平均值,总和,标准差,以及方差。

当前版本支持的统计字段类型为布尔,字节,双精度,单精度,16位整型,32位整型。

参数:
fieldName 统计使用的字段或字段运算表达式,如 SmID/100 等。
mode 统计方式。
返回:
统计结果。
- (NSString*) toGeoJSON: (BOOL)  hasAttributte
startID: (int)  startID
endID: (int)  endID 

将数据集中指定起止SmID的对象,转换成GeoJSON格式的字符串

仅支持点、线、面数据集,转换点、线、面对象.hasAtrributte为true时,结果中包含属性值;hasAtrribute为false时,只有几何对象。

参数:
hasAttributte 是否包含属性值
startID 起始SmID
endID 结束SmID
返回:
返回GeoJSON格式的字符串,没有转换成功,返回null;
- (int) toGeoJSONFile: (FILE *)  file  
- (BOOL) updateSpatialIndex  

脏数据的空间索引更新


属性文档

- (DatasetVector*) childDataset [read, assign]

获取子数据集。

返回:
子数据集(若没有返回nil)。
- (id<QueryDelegate>) delegate [read, write, assign]

查询回调

- (NSInteger) fieldCount [read, assign]

获取矢量数据集中字段的数目。

该方法是线程安全的,线程安全级别为 level2。

返回:
矢量数据集中字段的数目。
- (FieldInfos*) fieldInfos [read, assign]

获取字段信息集合的对象。即数据集属性表中所有字段的信息。

该方法是线程安全的,线程安全级别为 level2。

返回:
字段信息集合的对象。

该类的文档由以下文件生成: