Esempio n. 1
0
        /// <summary>
        /// 创建几何图形对应的用于高亮显示的元素
        /// </summary>
        /// <param name="geometry"></param>
        /// <returns></returns>
        private static IElement CreateHightLightElement(IGeometry geometry)
        {
            IElement element   = null;
            IColor   redcolor  = ColorCreate.GetIColor(255, 0, 0, 50);
            IColor   bluecolor = ColorCreate.GetIColor(0, 0, 255);

            switch (geometry.GeometryType)
            {
            case esriGeometryType.esriGeometryLine:
            case esriGeometryType.esriGeometryPolyline:
                element          = new LineElementClass();
                element.Geometry = geometry;
                ((ILineElement)element).Symbol = SymbolCreate.GetSimpleLineSymbol(redcolor);
                break;

            case esriGeometryType.esriGeometryPolygon:
                element          = new PolygonElementClass();
                element.Geometry = geometry;
                ((PolygonElementClass)element).Symbol = SymbolCreate.GetSimpleFillSymbol(redcolor, bluecolor);
                break;

            case esriGeometryType.esriGeometryPoint:
                element          = new MarkerElementClass();
                element.Geometry = geometry;
                IMarkerSymbol pisymbol = new SimpleMarkerSymbolClass();
                pisymbol.Color = (IColor)redcolor;
                pisymbol.Size  = 6;
                ((MarkerElementClass)element).Symbol = pisymbol;
                break;
            }
            return(element);
        }
Esempio n. 2
0
        /// <summary>
        /// 地图缩放至指定图形并闪烁
        /// </summary>
        /// <param name="axMapControl">地图控件</param>
        /// <param name="geometry">闪烁的图像</param>
        /// <param name="nFlashes">闪烁次数</param>
        public static void MapZoomToAndFlash(this AxMapControl axMapControl, IGeometry geometry, int nFlashes = 2)
        {
            MapZoomTo(axMapControl.ActiveView, geometry);

            //地图闪烁
            object symbol = null;

            switch (geometry.GeometryType)
            {
            case esriGeometryType.esriGeometryPoint:
                symbol = SymbolCreate.GetSimpleMarkerSymbol("ff0000");
                break;

            case esriGeometryType.esriGeometryLine:
            case esriGeometryType.esriGeometryPolyline:
                symbol = SymbolCreate.GetSimpleLineSymbol("ff0000");
                break;

            case esriGeometryType.esriGeometryPolygon:
                symbol = SymbolCreate.GetSimpleFillSymbol("99ccff", "ff0000");
                break;
            }
            if (symbol == null)
            {
                return;
            }
            axMapControl.FlashShape(geometry, nFlashes, 200, symbol);
        }
Esempio n. 3
0
        private void MainMapControl_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)//主地图:范围变化,鹰眼图跟随变化
        {
            //在绘制前,清除axMapControlEagleMap中的任何图形元素
            var graphicsContainer = (IGraphicsContainer)EagleMapControl.Map;

            graphicsContainer.DeleteAllElements();

            //主地图地图范围变化时,鹰眼中的地图范围也跟随着变化
            var rectangleElement = (IRectangleElement) new RectangleElement();
            var element          = (IElement)rectangleElement;
            var envelope         = (IEnvelope)e.newEnvelope; //得到主地图的新范围

            element.Geometry = envelope;

            //设置鹰眼中的红线框
            var fillShapeElement = (IFillShapeElement)element;

            fillShapeElement.Symbol = SymbolCreate.GetSimpleFillSymbol("ff000000", "ff0000", 1.6);
            graphicsContainer.AddElement((IElement)fillShapeElement, 0);

            //刷新
            envelope.Expand(2, 2, true);
            var activeView = (IActiveView)graphicsContainer;

            activeView.Extent = envelope;
            activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
        }