需求说明
两数据集空间位置重叠部分进行属性赋值,如有图形存在跨图形情况,重叠部分取面积大的图形进行赋值,此方法只对面图形进行赋值(Polygon)。
空间挂接
获得两个对象:
源图形数据集、赋值图形数据集。
IFeatureClass ExSourceFeature, IFeatureClass ExJoinClass。
获得游标
IFeatureCursor mFeatureCursor
遍历图形对象
IFeature mFeature = mFeatureCursor.NextFeature()
通过空间查询获得与当前图形重叠的图形对象
ISpatialFilter mSpatialFilter = new SpatialFilterClass()
mSpatialFilter.Geometry = mFeature.Shape
选择空间查询方式
mSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
得到挂接数据集中与当前图形重叠的游标
IFeatureCursor mFCursor = ExJoinClass.Search(mSpatialFilter, false)
遍历得到的游标并求出重叠面积(源图形与挂接图形)
ITopologicalOperator mTopoIntersect = mInterF.Shape as ITopologicalOperator;