/// <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);
            }
        }
    }
}

调用:

, axMapControl1.ActiveView.ScreenDisplay);

在AE中通过指定中心点和半径画圆-LMLPHP

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

04-30 02:58