private void SetMapMarker(MapPoint location, SimpleMarkerSymbolStyle pointStyle, Color markerColor, Color markerOutlineColor)
        {
            float markerSize               = 8.0f;
            float markerOutlineThickness   = 2.0f;
            SimpleMarkerSymbol pointSymbol = new SimpleMarkerSymbol(pointStyle, markerColor, markerSize);

            pointSymbol.Outline = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, markerOutlineColor, markerOutlineThickness);
            Graphic pointGraphic = new Graphic(location, pointSymbol);

            _graphicsOverlay.Graphics.Add(pointGraphic);
        }
Beispiel #2
0
        private void myPointSymbolStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (myPointSymbolStyle.SelectedIndex)
            {
            case 0: simpleMarkerStyle = SimpleMarkerSymbolStyle.Circle; break;

            case 1: simpleMarkerStyle = SimpleMarkerSymbolStyle.Cross; break;

            case 2: simpleMarkerStyle = SimpleMarkerSymbolStyle.Diamond; break;

            case 3: simpleMarkerStyle = SimpleMarkerSymbolStyle.Square; break;

            case 4: simpleMarkerStyle = SimpleMarkerSymbolStyle.Triangle; break;

            case 5: simpleMarkerStyle = SimpleMarkerSymbolStyle.X; break;

            default: simpleMarkerStyle = SimpleMarkerSymbolStyle.Circle; break;
            }
        }
Beispiel #3
0
        /// <summary>
        /// 在指定图层上添加点要素
        /// </summary>
        /// <param name="overlay">图层实例</param>
        /// <param name="point">位置</param>
        /// <param name="pointSymbolStyle">点的呈现样式</param>
        /// <param name="pointColor">颜色</param>
        /// <param name="pointSize">大小</param>
        public void AddPointToGraphicsOverlay(GraphicsOverlay overlay, MapPoint point, SimpleMarkerSymbolStyle pointSymbolStyle, Color pointColor, double pointSize)
        {
            Graphic graphic = new Graphic(point, new SimpleMarkerSymbol(pointSymbolStyle, pointColor, pointSize));

            overlay.Graphics.Add(graphic);
        }
        /// <summary>
        /// 初始化控件,进行事件订阅
        /// </summary>
        private void init()
        {
            StyleCombox.SelectedIndexChanged += (s, e) =>
            {
                ComboBox c = s as ComboBox;
                if (c != null)
                {
                    selectStyle = style[c.SelectedIndex];
                    simpleMarkerSymbol.Style = selectStyle;
                }
            };

            sizeUpDown.KeyPress += async(s, e) =>
            {
                await refreshPreviewAsync();
            };



            sizeUpDown.ValueChanged += async(s, e) =>
            {
                NumericUpDown numericUpDown = s as NumericUpDown;
                if (numericUpDown != null)
                {
                    size = (int)numericUpDown.Value;
                    simpleMarkerSymbol.Size = size;
                    //previewBox.Scale(new SizeF(size, size));
                    if (pictureMarkerSymbol != null)
                    {
                        pictureMarkerSymbol.Width  = size;
                        pictureMarkerSymbol.Height = size;
                        await refreshPreviewAsync();
                    }
                }
            };

            simple_RB.CheckedChanged += async(s, e) =>
            {
                if (simple_RB.Checked)
                {
                    previewBox.Image      = null;
                    StyleCombox.Enabled   = true;
                    colorBtn.Enabled      = true;
                    cusPictureBtn.Enabled = false;
                    cusPictureBtn.Visible = false;
                    await refreshPreviewAsync();
                }
                else
                {
                    previewBox.Image      = null;
                    StyleCombox.Enabled   = false;
                    colorBtn.Enabled      = false;
                    cusPictureBtn.Enabled = true;
                    cusPictureBtn.Visible = true;
                }
            };

            cusPictureBtn.Click += (s, e) =>
            {
                openPicDialog((ofd) =>
                {
                    previewBox.Load(ofd.FileName);
                    previewBox.SizeMode   = PictureBoxSizeMode.Zoom;
                    pictureMarkerSymbol   = new PictureMarkerSymbol(new Uri(ofd.FileName));
                    cusPictureBtn.Visible = false;
                    cusPictureBtn.Enabled = false;
                    sizeUpDown.Value      = (decimal)pictureMarkerSymbol.Height + 1;
                });
            };

            simpleMarkerSymbol.PropertyChanged += async(s, e) =>
            {
                if (simple_RB.Checked)
                {
                    await refreshPreviewAsync();
                }
            };

            //透明度改变
            transparencyControl.ValueChanged += async(s, e) =>
            {
                if (simple_RB.Checked)
                {
                    Color c = simpleMarkerSymbol.Color;
                    simpleMarkerSymbol.Color = Color.FromArgb(e, c.R, c.G, c.B);
                }
                else
                {
                    pictureMarkerSymbol.Opacity = transparencyControl.getOpacity();
                    //这里有可能因为线程问题抛出异常,需要捕捉异常,可能是用户上传的图片过大或者不合格,关掉窗口 让用户重新上传
                    try
                    {
                        await refreshPreviewAsync();
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show("错误:\n " + error.Message + "\n图片不合格,请重新上传");
                        Close();
                    }
                }
            };
        }