zoukankan      html  css  js  c++  java
  • ArcEngine实现对点、线、面的闪烁(转载)

    //闪烁线
    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);
    }
    //闪烁目标
    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();
        }
    }

  • 相关阅读:
    day14(JavaDoc)
    day15(Java流程控制)
    day12
    day.6
    day10
    day11(运算符)
    day.5
    proc -x cshell fork()
    I/O -x 标准IO fopen-fclose--fgetc-fputc--fgets-fputs--fwrite-fread--fprintf-fscanf
    I/O -x open()-read()-write()-close()-lseek()
  • 原文地址:https://www.cnblogs.com/bobzhangfw/p/1172572.html
Copyright © 2011-2022 走看看