private void myLineSymbolStyleComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (myLineSymbolStyleComboBox.SelectedIndex)
            {
            case 0: lineSymbolStyle = SimpleLineSymbolStyle.Solid; break;

            case 1: lineSymbolStyle = SimpleLineSymbolStyle.Dash; break;

            case 2: lineSymbolStyle = SimpleLineSymbolStyle.Dot; break;

            case 3: lineSymbolStyle = SimpleLineSymbolStyle.DashDot; break;

            case 4: lineSymbolStyle = SimpleLineSymbolStyle.DashDotDot; break;

            default: lineSymbolStyle = SimpleLineSymbolStyle.Null; break;
            }
        }
        private void LineSymbolForm_Load(object sender, EventArgs e)
        {
            for (int i = 1; i <= 5; i++)
            {
                myLineSymbolStyleComboBox.Items.Add(i.ToString());
            }

            this.myLineSymbolStyleComboBox.DrawMode  = DrawMode.OwnerDrawFixed;
            this.myLineSymbolStyleComboBox.DrawItem += delegate(object cmb, DrawItemEventArgs args)
            {
                args.DrawBackground(); System.Drawing.Drawing2D.DashStyle ds;
                switch (args.Index)
                {
                case 0: ds = System.Drawing.Drawing2D.DashStyle.Solid; break;

                case 1: ds = System.Drawing.Drawing2D.DashStyle.Dash; break;

                case 2: ds = System.Drawing.Drawing2D.DashStyle.Dot; break;

                case 3: ds = System.Drawing.Drawing2D.DashStyle.DashDot; break;

                case 4: ds = System.Drawing.Drawing2D.DashStyle.DashDotDot; break;

                default: ds = System.Drawing.Drawing2D.DashStyle.Custom; break;
                }
                Rectangle r = args.Bounds; float ly = r.Bottom - r.Height / 2;
                using (Pen p = new Pen(Color.FromArgb(0, 0, 255), 2))
                {
                    p.DashStyle = ds; args.Graphics.DrawLine(p, r.Left, ly, r.Right, ly);
                }
            };
            // 颜色
            resultColor = this.myLineSymbolColorBox.BackColor;
            // 宽度
            symbolSize = 3;
            // 样式
            lineSymbolStyle = SimpleLineSymbolStyle.Null;
        }
Beispiel #3
0
        /// <summary>
        /// 添加导航路线并返回路线长度
        /// </summary>
        /// <param name="overlay">图层实例</param>
        /// <param name="stops">站点</param>
        /// <param name="lineStyle">线的呈现样式</param>
        /// <param name="lineColor">颜色</param>
        /// <param name="lineWidth">线宽</param>
        /// <returns>路径长度,站点数小于2时返回-1</returns>
        public double AddNavigateRouteToGraphicsOverlay(GraphicsOverlay overlay, List <MapPoint> stops, SimpleLineSymbolStyle lineStyle, Color lineColor, double lineWidth)
        {
            if (stops.Count <= 1)
            {
                return(-1);
            }
            AddRouteToGraphicsOverlay(overlay, stops, lineStyle, lineColor, lineWidth);
            AddIconToGraphicsOverlay(overlay, stops[0], IconDictionaryHelper.IconDictionary[IconDictionaryHelper.Icons.start], 22, 33, 0.0, 13);
            AddIconToGraphicsOverlay(overlay, stops[stops.Count - 1], IconDictionaryHelper.IconDictionary[IconDictionaryHelper.Icons.end], 22, 33, 0.0, 13);
            double distance = 0;

            for (int i = 1; i < stops.Count - 1; i++)
            {
                distance += GetDistance(stops[i - 1].Y, stops[i - 1].X, stops[i].Y, stops[i].X);
            }
            return(distance);
        }
Beispiel #4
0
        /// <summary>
        /// 在指定图层上添加线要素
        /// </summary>
        /// <param name="overlay">图层实例</param>
        /// <param name="stops">站点</param>
        /// <param name="lineStyle">线的呈现样式</param>
        /// <param name="lineColor">颜色</param>
        /// <param name="lineWidth">线宽</param>
        private void AddRouteToGraphicsOverlay(GraphicsOverlay overlay, List <MapPoint> stops, SimpleLineSymbolStyle lineStyle, Color lineColor, double lineWidth)
        {
            Polyline         routePolyline = new Polyline(stops);
            SimpleLineSymbol routeSymbol   = new SimpleLineSymbol(lineStyle, lineColor, lineWidth);
            Graphic          routeGraphic  = new Graphic(routePolyline, routeSymbol);

            overlay.Graphics.Add(routeGraphic);
        }