zoukankan      html  css  js  c++  java
  • 线生成面

    生成面之前的截图:


    生成为面之后的截图:


    从线生成面的方法代码:

    /// <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(nullfalse);
        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, 
    nullnull);
  • 相关阅读:
    Django-配置Mysql
    Django-manage.py shell命令
    Codeforces 1516B AGAGA XOOORRR
    sitemesh入门教程
    养生好习惯
    解决idea自动导入类String总是导入sun.org.apache.xpath.internal.operations包下的String
    [C#]浅谈协变与逆变
    [C#]跨模块的可选参数与常量注意事项
    [C#]LockBits使用笔记
    1.在校研究生申请软件著作权(学校为第一著作人)
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1394907.html
Copyright © 2011-2022 走看看