当前位置:甜馍馍地理信息网 >> 地理信息系统GIS >> 组件式GIS >> 正文 >>  [阅读资讯:ArcEngine中使用上下左右键移动地图功能的实现代码]

ArcEngine中使用上下左右键移动地图功能的实现代码

[ 来源:互联网 | 时间:2007年10月16日 | 收藏本文 ] 【

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

Tags:ArcEngine
【推荐本文】 【打印本页】 【返回顶部
最新文章
推荐文章