예제 #1
0
        /// <summary>
        /// 获取经纬网,并设置属性
        /// </summary>
        /// <returns></returns>
        public static IGraticule GetGraticuleAndSetProperty()
        {
            IGraticule pGraticule = new GraticuleClass();

            pGraticule.Name = "Map Grid";
            //设置网格线的符号样式
            ICartographicLineSymbol pLineSymbol = GetLineSymbol();

            pGraticule.LineSymbol = pLineSymbol;
            //设置网格的边框样式
            pGraticule.Border = (IMapGridBorder)GetMapGridBorder();
            //设置网格的主刻度的样式和可见性
            pGraticule.TickLength     = 15;
            pGraticule.TickMarkSymbol = null;
            pGraticule.TickLineSymbol = pLineSymbol;
            //设置网格的次级刻度的样式和可见性
            pGraticule.SubTickCount      = 5;
            pGraticule.SubTickLength     = 10;
            pGraticule.SubTickLineSymbol = pLineSymbol;
            pGraticule.SetSubTickVisibility(true, true, true, true);
            //设置网格的标签的样式和可见性
            pGraticule.LabelFormat.Font = MappingHelper.GetFont("Arial") as IFontDisp;
            pGraticule.Visible          = true;
            return(pGraticule);
        }
예제 #2
0
        private ISymbol CreateBikeRouteSymbol()
        {
            IColor color = (IColor)ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(0, 90, 250));
            ICharacterMarkerSymbol charMarkerSymbol = new CharacterMarkerSymbolClass();

            charMarkerSymbol.Color          = color;
            charMarkerSymbol.Font           = ESRI.ArcGIS.ADF.Connection.Local.Converter.ToStdFont(new Font("ESRI Default Marker", 17.0f, FontStyle.Bold));
            charMarkerSymbol.CharacterIndex = 189;
            charMarkerSymbol.Size           = 17;

            IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbolClass();

            markerLineSymbol.Color        = color;
            markerLineSymbol.Width        = 17.0;
            markerLineSymbol.MarkerSymbol = (IMarkerSymbol)charMarkerSymbol;

            // Makes a new Cartographic Line symbol and sets its properties
            ICartographicLineSymbol cartographicLineSymbol = markerLineSymbol as ICartographicLineSymbol;

            // In order to set additional properties like offsets and dash patterns we must create an ILineProperties object
            ILineProperties lineProperties = cartographicLineSymbol as ILineProperties;

            lineProperties.Offset = 0;

            // Here's how to do a template for the pattern of marks and gaps
            double[] hpe = new double[4];
            hpe[0] = 0;
            hpe[1] = 39;
            hpe[2] = 1;
            hpe[3] = 0;

            ITemplate template = new TemplateClass();

            template.Interval = 1;
            for (int i = 0; i < hpe.Length; i = i + 2)
            {
                template.AddPatternElement(hpe[i], hpe[i + 1]);
            }
            lineProperties.Template = template;

            // Set the basic and cartographic line properties
            cartographicLineSymbol.Color = color;

            color = (IColor)ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(0, 220, 100));

            // create a simple line
            ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass();

            simpleLineSymbol.Color = color;
            simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid;
            simpleLineSymbol.Width = 1.2;

            IMultiLayerLineSymbol multiLayerLineSymbol = new MultiLayerLineSymbolClass();

            multiLayerLineSymbol.AddLayer((ILineSymbol)cartographicLineSymbol);
            multiLayerLineSymbol.AddLayer((ILineSymbol)simpleLineSymbol);

            return(multiLayerLineSymbol as ISymbol);
        }
예제 #3
0
        //创建点状线
        private IMarkerLineSymbol CreateMarkerLineSymbol()
        {
            IMarkerLineSymbol pMarkerLS = new MarkerLineSymbol();

            //样式
            if (pMarkerSymbol != null)
            {
                pMarkerLS.MarkerSymbol = pMarkerSymbol;
            }

            ICartographicLineSymbol pCartographicLS = pMarkerLS as ICartographicLineSymbol;

            //颜色
            if (colorCartographicLine.SelectedColor != Color.Empty)
            {
                pCartographicLS.Color = ClsGDBDataCommon.ColorToIColor(colorCartographicLine.SelectedColor);
            }
            else
            {
                pCartographicLS.Color = ClsGDBDataCommon.ColorToIColor(Color.Black);
                colorCartographicLine.SelectedColor = Color.Black;
            }
            //宽度
            pCartographicLS.Width = double.Parse(widthCartographicLine.Text);

            //端点样式
            if (rbCatButt.Checked == true)
            {
                pCartographicLS.Cap = esriLineCapStyle.esriLCSButt;
            }
            else if (rbCatRoundC.Checked == true)
            {
                pCartographicLS.Cap = esriLineCapStyle.esriLCSRound;
            }
            else if (rbCatSquare.Checked == true)
            {
                pCartographicLS.Cap = esriLineCapStyle.esriLCSSquare;
            }

            //节点样式
            if (rbCatMitre.Checked == true)
            {
                pCartographicLS.Join = esriLineJoinStyle.esriLJSMitre;
            }
            else if (rbCatRoundJ.Checked == true)
            {
                pCartographicLS.Join = esriLineJoinStyle.esriLJSRound;
            }
            else if (rbCatBevel.Checked == true)
            {
                pCartographicLS.Join = esriLineJoinStyle.esriLJSBevel;
            }

            //端点箭头样式
            ILineDecorationElement pLineDecorationElement = new SimpleLineDecorationElement();

            return(pMarkerLS);
        }
예제 #4
0
        /// <summary>
        /// 获取线符号
        /// </summary>
        /// <param name="Symbol"></param>
        /// <returns></returns>
        private ptSymbolClass GetLineSymbolClass(ISymbol Symbol)
        {
            ptSymbolClass pSymbolClass = null;

            if (Symbol is ICartographicLineSymbol)
            {
                ICartographicLineSymbol ICLS = Symbol as ICartographicLineSymbol;
                if (ICLS is IHashLineSymbol)
                {
                    pSymbolClass = new ptHashLineSymbolClass(Symbol);
                    return(pSymbolClass);
                }
                else if (ICLS is IMarkerLineSymbol)
                {
                    pSymbolClass = new ptMarkerLineSymbolClass(Symbol);
                    return(pSymbolClass);
                }
                else
                {
                    pSymbolClass = new ptCartographicLineSymbol(Symbol);
                    return(pSymbolClass);
                }
            }
            else if (Symbol is ISimpleLineSymbol)
            {
                pSymbolClass = new ptSimpleLineSymbolClass(Symbol);
                return(pSymbolClass);
            }
            else if (Symbol is IPictureLineSymbol)
            {
                pSymbolClass = new ptPictureLineSymbolClass(Symbol);
                return(pSymbolClass);
            }
            else if (Symbol is IMultiLayerLineSymbol)
            {
                pSymbolClass = new ptMultilayerLineSymbolClass(Symbol);
                return(pSymbolClass);
            }
            return(pSymbolClass);
        }