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