- //闪烁目标
- public static void FlashFeature(AxMapControl mapControl,IFeature iFeature, IMap iMap)
- {
- IActiveView iActiveView = iMap as IActiveView;
- if (iActiveView != null)
- {
- iActiveView.ScreenDisplay.StartDrawing(0, (short)esriScreenCache.esriNoScreenCache);
- //根据几何类型调用不同的过程
- switch (iFeature.Shape.GeometryType)
- {
- case esriGeometryType.esriGeometryPolyline:
- FlashLine(mapControl, iActiveView.ScreenDisplay, iFeature.Shape);
- break;
- case esriGeometryType.esriGeometryPolygon:
- FlashPolygon(mapControl, iActiveView.ScreenDisplay, iFeature.Shape);
- break;
- case esriGeometryType.esriGeometryPoint:
- FlashPoint(mapControl, iActiveView.ScreenDisplay, iFeature.Shape);
- break;
- default:
- break;
- }
- iActiveView.ScreenDisplay.FinishDrawing();
- }
- }
- //闪烁线
- static void FlashLine(AxMapControl mapControl,IScreenDisplay iScreenDisplay,IGeometry iGeometry)
- {
- ISimpleLineSymbol iLineSymbol;
- ISymbol iSymbol;
- IRgbColor iRgbColor;
- iLineSymbol = new SimpleLineSymbol();
- iLineSymbol.Width = 4;
- iRgbColor = new RgbColor();
- iRgbColor.Red = 255;
- iLineSymbol.Color = iRgbColor;
- iSymbol = (ISymbol)iLineSymbol;
- iSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
- mapControl.FlashShape(iGeometry, 3, 200, iSymbol);
- }
- //闪烁面
- static void FlashPolygon(AxMapControl mapControl, IScreenDisplay iScreenDisplay, IGeometry iGeometry)
- {
- ISimpleFillSymbol iFillSymbol;
- ISymbol iSymbol;
- IRgbColor iRgbColor;
- iFillSymbol = new SimpleFillSymbol();
- iFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
- iFillSymbol.Outline.Width = 12;
- iRgbColor = new RgbColor();
- iRgbColor.RGB = System.Drawing.Color.FromArgb(100, 180, 180).ToArgb();
- iFillSymbol.Color = iRgbColor;
- iSymbol = (ISymbol)iFillSymbol;
- iSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
- iScreenDisplay.SetSymbol(iSymbol);
- mapControl.FlashShape(iGeometry, 3, 200, iSymbol);
- }
- //闪烁点
- static void FlashPoint(AxMapControl mapControl, IScreenDisplay iScreenDisplay, IGeometry iGeometry)
- {
- ISimpleMarkerSymbol iMarkerSymbol;
- ISymbol iSymbol;
- IRgbColor iRgbColor;
- iMarkerSymbol = new SimpleMarkerSymbol();
- iMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle;
- iRgbColor = new RgbColor();
- iRgbColor.RGB = System.Drawing.Color.FromArgb(0, 0, 0).ToArgb();
- iMarkerSymbol.Color = iRgbColor;
- iSymbol = (ISymbol)iMarkerSymbol;
- iSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
- mapControl.FlashShape(iGeometry, 3, 200, iSymbol);
- }
ArcEngine中闪烁目标
最新推荐文章于 2019-05-28 10:31:35 发布