在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
生成面之前的截图:
/// <summary>
/// 通过线创建面 /// </summary> /// <param name="pPolyline">线</param> /// <returns>面</returns> IPolygon ConstructPolygonFromPolyline(IPolyline pPolyline) { IGeometryCollection pPolygonGeoCol = new PolygonClass(); if ((pPolyline != null) && (!pPolyline.IsEmpty)) { IGeometryCollection pPolylineGeoCol = pPolyline as IGeometryCollection; ISegmentCollection pSegCol = new RingClass(); ISegment pSegment = null; object missing = Type.Missing; for (int i = 0; i < pPolylineGeoCol.GeometryCount; i++) { ISegmentCollection pPolylineSegCol = pPolylineGeoCol.get_Geometry(i) as ISegmentCollection; for (int j = 0; j < pPolylineSegCol.SegmentCount; j++) { pSegment = pPolylineSegCol.get_Segment(j); pSegCol.AddSegment(pSegment, ref missing, ref missing); } pPolygonGeoCol.AddGeometry(pSegCol as IGeometry, ref missing, ref missing); } } return pPolygonGeoCol as IPolygon; } 调用示例:
ILayer pLayer = axMapControl1.get_Layer(1);
IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer; IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline) { IFeatureCursor pFeatureCursor = pFeatureClass.Search(null, false); IFeature pFeature = pFeatureCursor.NextFeature(); ILayer pTargetLayer = axMapControl1.get_Layer(2); IFeatureLayer pTargetFeatureLayer = pTargetLayer as IFeatureLayer; IFeatureClass pTargetFeatureClass = pTargetFeatureLayer.FeatureClass; if (pTargetFeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon) { IPolygon pPolygon = null; while (pFeature != null) { IPolyline pPolyline = pFeature.Shape as IPolyline; pPolygon = ConstructPolygonFromPolyline(pPolyline); if ((pPolygon != null) && (!pPolygon.IsEmpty)) { if (!pPolygon.IsClosed) { pPolygon.Close(); } IFeature pNewFeature = pTargetFeatureClass.CreateFeature(); pNewFeature.Shape = pPolygon; pNewFeature.Store(); pFeature.Delete(); } pFeature = pFeatureCursor.NextFeature(); } } } axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); |
请发表评论