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

  • 相关阅读:
    使用mysqltools配置读写分离环境
    mysql group replication 主节点宕机恢复
    django ---- models继承
    django -- 对模式进行调式(pay with the api)
    django -- 多对多关系的实现
    django -- verbose_name的对数据库层面的影响
    django -- model中只有Field类型的数据才能成为数据库中的列
    django -- 为model 指定数据库名
    django -- 联合索引
    flask基础之jijia2模板使用基础(二)
  • 原文地址:https://www.cnblogs.com/bobzhangfw/p/1172572.html
Copyright © 2011-2022 走看看