supermap objects 地图上添加 点线面图层 和删除图层 的类
来源:互联网 发布:量子技术 知乎 编辑:程序博客网 时间:2024/06/04 18:20
窗口form1的代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace addLayer1{ public partial class Form1 : Form { private SampleRun m_sampleRun; private Boolean m_styleFlag = false; public Form1() { InitializeComponent(); LoadComboBoxContents(); m_sampleRun = new SampleRun(workspace1, mapControl1); } /// <summary> /// 下载下拉框项目 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LoadComboBoxContents() { toolStripComboBox1.Items.Add("自定义风格"); toolStripComboBox1.Items.Add("默认风格"); toolStripComboBox1.SelectedItem = toolStripComboBox1.Items[1]; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { mapControl1.Dispose(); workspace1.Dispose(); } private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (toolStripComboBox1.SelectedItem == toolStripComboBox1.Items[0]) { m_styleFlag = true; } else { m_styleFlag = false; } } private void toolStripButton1_Click(object sender, EventArgs e) { m_sampleRun.AddPointDataset(m_styleFlag); } private void toolStripButton6_Click(object sender, EventArgs e) { m_sampleRun.RemoveLayer(); } private void toolStripButton2_Click(object sender, EventArgs e) { m_sampleRun.AddLineDataset(m_styleFlag); } private void toolStripButton3_Click(object sender, EventArgs e) { m_sampleRun.AddRegionDataset(m_styleFlag); } }}
SampleRun的类:
using System;using System.Collections.Generic;using System.Drawing;using System.Text;using SuperMap.Data;using SuperMap.Mapping;using SuperMap.UI; namespace addLayer1{ internal class SampleRun { private Workspace m_workspace; private MapControl m_mapControl; private Datasource m_datasource; Layer layer = null; public SampleRun(Workspace workspace, MapControl mapControl) { this.m_mapControl = mapControl; this.m_workspace = workspace; m_mapControl.Map.Workspace = m_workspace; Initialize(); } private void Initialize() { WorkspaceConnectionInfo conInfo = new WorkspaceConnectionInfo(@"D:\souce\supermap\SampleData\World\World.smwu"); m_workspace.Open(conInfo); m_mapControl.Map.Open(m_workspace.Maps[0]); m_datasource = m_workspace.Datasources[0]; m_mapControl.Action = Action.Pan; m_mapControl.Map.ViewEntire(); } //添加点数据集 public void AddPointDataset(Boolean styleFlag) { DatasetVector dataset = m_datasource.Datasets["Capital"] as DatasetVector; RemoveLayer(); //自定义的 if (styleFlag) { LayerSettingVector setting = new LayerSettingVector(); setting.Style.MarkerSize = new Size2D(4, 4); setting.Style.MarkerSymbolID = 10; layer = m_mapControl.Map.Layers.Add(dataset, setting, true); } else //默认的 { layer = m_mapControl.Map.Layers.Add(dataset, true); } m_mapControl.Map.ViewEntire(); m_mapControl.Map.Refresh(); } //添加线数据集 public void AddLineDataset(Boolean styleFlag) { DatasetVector dataset = m_datasource.Datasets["Grids"] as DatasetVector; RemoveLayer(); if (styleFlag) { LayerSettingVector setting = new LayerSettingVector(); setting.Style.LineColor = Color.Orange; setting.Style.MarkerSymbolID = 12; setting.Style.LineWidth = 0.2; layer = m_mapControl.Map.Layers.Add(dataset, setting, true); } else { layer = m_mapControl.Map.Layers.Add(dataset, true); } m_mapControl.Map.ViewEntire(); m_mapControl.Map.Refresh(); } //添加面数据集 public void AddRegionDataset(Boolean styleFlag) { DatasetVector dataset = m_datasource.Datasets["World"] as DatasetVector; RemoveLayer(); if (styleFlag) { LayerSettingVector setting = new LayerSettingVector(); setting.Style.LineColor = Color.White; setting.Style.LineWidth = 0.5; setting.Style.MarkerSymbolID = 11; setting.Style.FillForeColor = Color.Yellow; setting.Style.FillOpaqueRate = 50; layer = m_mapControl.Map.Layers.Add(dataset, setting, true); } else { layer = m_mapControl.Map.Layers.Add(dataset, true); } m_mapControl.Map.ViewEntire(); m_mapControl.Map.Refresh(); } //删除图层 public void RemoveLayer() { if (layer != null) { m_mapControl.Map.Layers.Remove(layer.Name); layer = null; m_mapControl.Map.Refresh(); } } }}