110,577
社区成员
发帖
与我相关
我的任务
分享
IFeature pFeature = pFeatureCursor.NextFeature();
IGeometry pFirstGeometry = new PolygonClass();
while (pFeature != null)
{
IGeometry pGeometry = pFeature.ShapeCopy;
ITopologicalOperator pTopologicalOperator = pFirstGeometry as ITopologicalOperator;
pFirstGeometry = pTopologicalOperator.Union(pGeometry) as IPolygon;
pFeature = pFeatureCursor.NextFeature();
IFeature pFeatureSecond = pFeatureCursorSecond.NextFeature();
while (pFeatureSecond != null)
{
IFeature pCopyFeature = pFeatureSecond;
IGeometry pSecondGeometry = new PolygonClass();
pSecondGeometry = pFeatureSecond.Shape;
ITopologicalOperator pTOSecond = pSecondGeometry as ITopologicalOperator;
pSecondGeometry = pTOSecond.Intersect(pFirstGeometry, esriGeometryDimension.esriGeometry2Dimension) as IPolygon;
IGeometry pSecondGeometry2 = new PolygonClass();
pSecondGeometry2 = pFeatureSecond.Shape;
ITopologicalOperator pTOSDifference = pSecondGeometry2 as ITopologicalOperator;
pSecondGeometry2 = pTOSDifference.Difference(pSecondGeometry) as IPolygon;
if (pSecondGeometry2.IsEmpty)
{
pFeatureSecond.Delete();
}
else
{
pFeatureSecond.Shape = pSecondGeometry2;
for (int EraseFieldCount = 0; EraseFieldCount < pFeatureSecond.Fields.FieldCount; EraseFieldCount++)
{
if (pCopyFeature.Fields.get_Field(EraseFieldCount).Name != "Shape" && pCopyFeature.Fields.get_Field(EraseFieldCount).Name != "FID")
{
var pValue = pCopyFeature.get_Value(EraseFieldCount);
listBox1.Items.Add(pValue);
pFeatureSecond.set_Value(EraseFieldCount, pValue);
}
}
pFeatureSecond.Store();
}
pFeatureSecond = pFeatureCursorSecond.NextFeature();
}