/// <summary>
/// 对所选择特征进行闪烁控制
/// </summary>
/// <param name="pFeature"></param>
/// <param name="pMap"></param>
public static void FlashFeature(IFeature pFeature, IMap pMap)
{
IActiveView pActiveView = pMap as IActiveView;
pActiveView.ScreenDisplay.StartDrawing(0, -1);
switch (pFeature.Shape.GeometryType)
{
case esriGeometryType.esriGeometryPolyline:
FlashPolyline(pActiveView.ScreenDisplay, pFeature.Shape);
break;
case esriGeometryType.esriGeometryPolygon:
FlashPolygon(pActiveView.ScreenDisplay, pFeature.Shape);
break;
case esriGeometryType.esriGeometryPoint:
FlashPoint(pActiveView.ScreenDisplay, pFeature.Shape);
break;
}
pActiveView.ScreenDisplay.FinishDrawing();
}
/// <summary>
/// 闪烁点要素
/// </summary>
/// <param name="pDisplay"></param>
/// <param name="pGeometry"></param>
public static void FlashPoint(IScreenDisplay pDisplay, IGeometry pGeometry)
{
ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbolClass();
pMarkerSymbol.Style. = esriSimpleMarkerStyle.esriSMSCircle;
IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 150;
pRgbColor.Green = 100;
pRgbColor.Blue = 100;
pMarkerSymbol.Color = pRgbColor as IColor;
pMarkerSymbol.Outline = true;
ISymbol pSymbol = pMarkerSymbol as ISymbol;
pSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
pDisplay.SetSymbol(pSymbol);
pDisplay.DrawPoint(pGeometry);
Thread.Sleep(300);
pDisplay.DrawPoint(pGeometry);
}
/// <summary>
/// 闪烁线要素
/// </summary>
/// <param name="pDisplay"></param>
/// <param name="pGeometry"></param>
public static void FlashPolyline(IScreenDisplay pDisplay, IGeometry pGeometry)
{
ISimpleLineSymbol pLineSymbol = new SimpleLineSymbolClass();
pLineSymbol.Width = 4;
IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Green = 100;
pRgbColor.Red = 150;
pRgbColor.Blue = 100;
pLineSymbol.Color = pRgbColor as IColor;
ISymbol pSymbol = pLineSymbol as ISymbol;
pSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
pDisplay.SetSymbol(pSymbol);
pDisplay.DrawPolyline(pGeometry);
Thread.Sleep(300);
pDisplay.DrawPolyline(pGeometry);
}
/// <summary>
/// 闪烁面要素
/// </summary>
/// <param name="pDisplay"></param>
/// <param name="pGeometry"></param>
public static void FlashPolygon(IScreenDisplay pDisplay, IGeometry pGeometry)
{
ISimpleFillSymbol pFillSymbol = new SimpleFillSymbolClass();
IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 255;
pRgbColor.Green = 0;
pRgbColor.Blue = 0;
pFillSymbol.Color = pRgbColor as IColor;
ISymbol pSymbol = pFillSymbol as ISymbol;
pDisplay.SetSymbol(pSymbol);
pDisplay.DrawPolygon(pGeometry);
Thread.Sleep(300);
pDisplay.DrawPolygon(pGeometry);
}
闪烁选中的要素(Flash)
最新推荐文章于 2019-03-01 12:36:00 发布