/// <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);
}
}
}
}
/// 通过指定的中心点、半径画圆
/// </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);
from: http://www.cnblogs.com/GISCafe/archive/2008/05/26/1207927.html