根据空间关系更新数据集中对象的属性。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public bool UpdateFields(
	DatasetVector sourceDataset,
	SpatialRelationType spatialRelationType,
	string[] sourceFields,
	string[] targetFields,
	AttributeStatisticsType attributeStatisticsType,
	bool isBorderInside,
	string errorName,
	bool isShowProgress
)

参数

sourceDataset
Type: SuperMap.Data..::.DatasetVector
指定的提供属性的数据集。
spatialRelationType
Type: SuperMap.Data..::.SpatialRelationType
指定的空间关系。
sourceFields
Type: array< System..::.String >[]()[]
指定的提供属性的数据集中用于更新的字段集合。
targetFields
Type: array< System..::.String >[]()[]
指定的被更新的字段集合。
attributeStatisticsType
Type: SuperMap.Data..::.AttributeStatisticsType
指定的属性字段的取值方式。
isBorderInside
Type: System..::.Boolean
指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。
errorName
Type: System..::.String
指定的记录满足空间关系的提供属性的数据集中对象个数的字段。该字段必须为整型。
isShowProgress
Type: System..::.Boolean
指定是否显示进度条。

返回值

一个布尔值,表示是否更新属性成功,如果成功返回 true,否则返回 false。

备注

注意:

  1. 提供属性的数据集中用于更新的字段集合(对应方法中的 sourceFields 参数)中的字段必须与被更新的字段集合(对应方法中的 targetFields 参数)中的字段一一对应,若两个字段集合中的个数不匹配,则更新失败,方法返回 false;如果字段类型不匹配,方法将执行强制转换,若转换失败,则放弃对该字段的更新。
  2. 如果属性字段取值方式(对应方法中的 attributeStatisticsType 参数)为 Value、MinID 和 MaxID,不支持 Text、WText 和 DateTime 三种字段类型。
  3. 对于边界处理方式(对应方法中 isBorderInside 参数)的理解,如下图所示,点 C 位于面 A 的边线上,线 D 与面 A 只相交于其一个端点,如果 isBorderInside 为 true,则认为点 C 与 面 A、线 D 与面 A 为相交关系,此时若指定的空间关系为相交,那么点 C 和 线 D 的属性将被面 A 更新。需要强调的是,线 B 与 面 A 并非只相交于线的端点,因此,当空间关系为相交时,无论 isBorderInside 为 true 还是 false,线 B 的属性都将被 面 A 更新。

请参见