zoukankan      html  css  js  c++  java
  • 在AE中通过指定中心点和半径画圆

    /// <summary>
    /// 通过指定的中心点、半径画圆
    /// </summary>
    /// <param name="pLayer">要画的圆所在的图层</param>
    /// <param name="pPoint">圆的中心点</param>
    /// <param name="circleRadius">半径圆的</param>
    /// <param name="pScreenDisplay">图形绘制对象</param>
    private void DrawCircleByCenterAndRadius(ILayer pLayer, IPoint pPoint, double circleRadius, IScreenDisplay pScreenDisplay)
    {
        
    if (pLayer != null)
        {
            ISegmentCollection pSegmentCollection 
    = null;
            
    if (pLayer is IFeatureLayer)
            {
                IFeatureLayer pFeatureLayer 
    = pLayer as IFeatureLayer;
                IFeatureClass pFeatureClass 
    = pFeatureLayer.FeatureClass;
                
    if (pFeatureClass != null)
                {
                    
    if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)
                    {
                        pSegmentCollection 
    = new PolylineClass();
                    }
                    
    else if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon)
                    {
                        pSegmentCollection 
    = new PolygonClass();
                    }
                    
    //开始画圆
                    pSegmentCollection.SetCircle(pPoint, circleRadius);
                    IFeature pCircleFeature 
    = pFeatureClass.CreateFeature();
                    pCircleFeature.Shape 
    = pSegmentCollection as IGeometry;
                    pCircleFeature.Store();
                    
    //局部刷新
                    IInvalidArea pInvalidArea = new InvalidAreaClass();
                    pInvalidArea.Add(pSegmentCollection);
                    pInvalidArea.Display 
    = pScreenDisplay;
                    pInvalidArea.Invalidate((
    short)esriScreenCache.esriAllScreenCaches);
                }
            }
        }
    }


    调用:

    DrawCircleByCenterAndRadius(axMapControl1.get_Layer(1), pPoint, 180, axMapControl1.ActiveView.ScreenDisplay);


    from: http://www.cnblogs.com/GISCafe/archive/2008/05/26/1207927.html

  • 相关阅读:
    【C】——sigprocmask 阻塞进程信号
    【C】——setjmp练习
    【程序练习】——交换两数组元素,使之和差最小
    【C】——setvbuf(scanf内存溢出问题)
    【C】——APUE小程序之递归遍历目录
    Java的原始类型(Primitive Type)
    类加载 静态加载
    行政拘留不属于行政强制措施
    行政立法主体
    行政法中三大具体行政行为
  • 原文地址:https://www.cnblogs.com/yuxuetaoxp/p/3258735.html
Copyright © 2011-2022 走看看