ArcEngine多要素合并的方法

来源:互联网 发布:win10手势软件 编辑:程序博客网 时间:2024/05/16 14:51

             多要素合并,不能采用一个一个union的方法,速度太慢。使用ITopologicalOperator的ConstructUnion方法合并多条要素。

            public IPolygon union(IFeatureClass featureClass)

                {

  if (featureClass == null)

                       { return null; }

                  IGeoDataset geoDataset = featureClass as IGeoDataset;

                  IGeometry geometryBag = new GeometryBagClass();

                   IGeoDataset geoDataset = featureClass as IGeoDataset;

                  ISpatialFilter queryFilter = new SpatialFilterClass();

                 geometryBag.SpatialReference = geoDataset.SpatialReference;

                 IFeatureCursor featureCursor = featureClass.Search(queryFilter, false);

                IGeometryCollection geometryCollection = geometryBag as IGeometryCollection;

                 IFeature currentFeature = featureCursor.NextFeature();

                while (currentFeature != null)

                 {

                    object missing = Type.Missing;

                    geometryCollection.AddGeometry(currentFeature.Shape, ref missing, ref missing);

                    currentFeature = featureCursor.NextFeature();

                 }

                ITopologicalOperator unionedPolygon = new PolygonClass();

                unionedPolygon.ConstructUnion(geometryBag as IEnumGeometry);

               return unionedPolygon as IPolygon;

  }

0 0
原创粉丝点击