ArcEngine实现图层地物合并的简单方法

private IGeometry GetGeo(IFeatureLayer pFlyr)
        {
           IEnumGeometry pGeos = new EnumFeatureGeometryClass();
           IEnumGeometryBind pGeosBind = pGeos as IEnumGeometryBind;
           IFeatureSelection pflyrSelection = pFlyr as IFeatureSelection;
           
pflyrSelection.SelectFeatures(null,esriSelectionResultEnum.esriSelectionResultNew, false);           pGeosBind.BindGeometrySource(null, pflyrSelection.SelectionSet);
           pGeos.Reset();
            IPolygonsPoly = new PolygonClass();
           ITopologicalOperator pTopo = sPoly as ITopologicalOperator;
           pTopo.ConstructUnion(pGeos);
           pTopo.Simplify();
            sPoly =pTopo as IPolygon;
           pflyrSelection.Clear();
            returnsPoly;
        }

 

    执行上面的代码段可以把图层上的所有实体合并。注意红色部分的那行代码,不写此行代码,pGeos
里的图形个数为0,最后得到的spoly是空。

转载自:https://blog.csdn.net/SYDBC/article/details/17202323

You may also like...

退出移动版