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