private void treeView_Layers_AfterCheck(object sender, TreeViewEventArgs e) { int vID = (int)e.Node.Tag; LayerStruct vLayer = Layers.Where(m => m.ID == vID).FirstOrDefault(); if (vLayer != null) { VMainForm.ChangeLayerVisible(vLayer.Name, e.Node.Checked); vLayer.IsView = e.Node.Checked; } }
//public void initSelectedLayers() //{ // DataTable vTable = createTableStruct(); // foreach (var vTempDict in BufferLayers) // { // DataRow vNewRow = vTable.NewRow(); // vNewRow["选择"] = true; // vNewRow["图层名称"] = vTempDict.Key; // vNewRow["图层别名"] = getLayerAliasName(vTempDict.Key); // vNewRow["图层类型"] = getLayerType(vTempDict.Key); // vNewRow["缓冲距离"] = vTempDict.Value; // vTable.Rows.Add(vNewRow); // } // vTable.AcceptChanges(); // dataGridView_Layers.AutoGenerateColumns = false; // dataGridView_Layers.DataSource = vTable; //} //private void ToolStripMenuItem_Delete_Click(object sender, EventArgs e) //{ // if ( listView_BufferLayers.SelectedItems.Count>0 ) // { // foreach ( ListViewItem vItem in listView_BufferLayers.SelectedItems) // { // string vLayerName = vItem.SubItems[1].Text; // VMainForm.DeleteLayer(vLayerName); // listView_BufferLayers.Items.Remove(vItem); // } // } //} int getLayerType(string layerName) { int vResult = 0; LayerStruct vLayer = Layers.Where(m => m.Name == layerName).FirstOrDefault(); if (vLayer != null) { vResult = vLayer.Type.Value; } return(vResult); }
public void InitFeatureLayers() { treeView_Layer.Nodes.Clear(); foreach (var TempDict in SelectFeatures) { LayerStruct vLayer = m_Layers.Where(m => m.Name == TempDict.Key).FirstOrDefault(); if (vLayer != null) { string vNodeName = string.Format("图层:【{0}】 要素类型:【{1}】", vLayer.Expository, CommonUnit.ConvertLayerType(vLayer.Type ?? 0)); treeView_Layer.Nodes.Add(TempDict.Key, vNodeName, vLayer.Type ?? 0); } } }
private void treeView_Layers_DragDrop(object sender, DragEventArgs e) { TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); //根据鼠标坐标确定要移动到的目标节点 Point pt; TreeNode targeNode; pt = ((TreeView)(sender)).PointToClient(new Point(e.X, e.Y)); targeNode = this.treeView_Layers.GetNodeAt(pt); //如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端 TreeNode NewMoveNode = (TreeNode)moveNode.Clone(); if (targeNode != null && targeNode.Nodes.Count == 0) { treeView_Layers.Nodes.Insert(targeNode.Index, NewMoveNode); } else { targeNode.Nodes.Insert(targeNode.Nodes.Count, NewMoveNode); } //更新当前拖动的节点选择 treeView_Layers.SelectedNode = NewMoveNode; //展开目标节点,便于显示拖放效果 targeNode.Expand(); //移除拖放的节点 moveNode.Remove(); //修正Order字段中的值 int vID = int.Parse(treeView_Layers.SelectedNode.Name); LayerStruct vLayer = Layers.Where(m => m.ID == vID).FirstOrDefault(); int vFromIndex = vLayer.Order; int vIndex = VMainForm.GetLayerIndexFromName(vLayer.Name); vLayer.Order = treeView_Layers.SelectedNode.Index; int vToIndex = vLayer.Order; //VMainForm.axmap for (int i = treeView_Layers.SelectedNode.Index + 1; i < treeView_Layers.Nodes.Count; i++) { vID = int.Parse(treeView_Layers.Nodes[i].Name); vLayer = Layers.Where(m => m.ID == vID).FirstOrDefault(); vLayer.Order = treeView_Layers.Nodes[i].Index; } VMainForm.ChangeLayerIndex(vFromIndex, vToIndex); }
private void button_Apply_Click(object sender, EventArgs e) { int vID = int.Parse(treeView_Layers.SelectedNode.Name); LayerStruct vLayer = Layers.Where(m => m.ID == vID).FirstOrDefault(); string vLayerName = vLayer.Name; int vLayerColor = label_Color.Tag == null ? 0 : (int)label_Color.Tag; if (vLayerColor != 0) { VMainForm.ChangeLayerColor(vLayerName, vLayerColor); vLayer.Color = vLayerColor; treeView_Layers.SelectedNode.ForeColor = Color.FromArgb(vLayerColor); label_Color.BackColor = treeView_Layers.SelectedNode.ForeColor; } vLayer.ShowAnnotation = checkBox_Annotation.Checked; // string vAnnotationField = comboBox_Label.Text; string vAnnotationField = textBox_Express.Text; vLayer.AnnotationField = vAnnotationField; //改变颜色 int vAnnotationColor = label_AnnotationColor.Tag == null ? -1 : (int)label_AnnotationColor.Tag; vLayer.AnnotationFontColor = vAnnotationColor; IRgbColor vRgbColor = vAnnotationColor == -1 ? null : CommonUnit.ColorToIRgbColor(Color.FromArgb(vAnnotationColor)); int vFontSize = int.Parse(comboBox_FontSize.Text); vLayer.AnnotationFontSize = vFontSize; if (vLayer.ShowAnnotation) { VMainForm.EnableFeatureLayerLabel(vLayerName, vAnnotationField, vRgbColor, vFontSize); } else { VMainForm.DisableFeatureLayerLabel(vLayerName); } //改变图层透明度 short vTransparency = Convert.ToInt16(trackBar_Transparency.Value); vLayer.Transparency = vTransparency; VMainForm.ChangeLayerTransparency(vLayerName, vTransparency); button_Apply.Enabled = false; }
// GET: api/GetLayers public LayerStruct[] Get() { MapServer vMapServer = new MapServer(); DataTable vLayerTable = vMapServer.GetLayers(); List <LayerStruct> vLyaers = new List <LayerStruct>(); foreach (DataRow vTempRow in vLayerTable.Rows) { LayerStruct vLayer = new LayerStruct() { ID = DBConvert.ToInt32(vTempRow["ID"]), classify = DBConvert.ToString(vTempRow["classify"]), Expository = DBConvert.ToString(vTempRow["Expository"]), Name = DBConvert.ToString(vTempRow["Name"]), Type = DBConvert.ToInt32(vTempRow["Type"]) }; vLyaers.Add(vLayer); } return(vLyaers.ToArray()); }
private void treeView_Layers_AfterSelect(object sender, TreeViewEventArgs e) { int vID = (int)e.Node.Tag; LayerStruct vLayer = Layers.Where(m => m.ID == vID).FirstOrDefault(); if (vLayer.Type == 3 || vLayer.Type == 5) { label_Color.Enabled = false; button_MapColor.Enabled = false; trackBar_Transparency.Enabled = true; checkBox_Annotation.Enabled = false; comboBox_Label.Enabled = false; button_Add.Enabled = false; label_AnnotationColor.Enabled = false; button_Color.Enabled = false; comboBox_FontSize.Enabled = false; textBox_Express.Enabled = false; if (dataGridView_Data.DataSource != null) { ((DataTable)dataGridView_Data.DataSource).Rows.Clear(); } dataGridView_Data.Enabled = false; } else { label_Color.Enabled = true; button_MapColor.Enabled = true; trackBar_Transparency.Enabled = true; checkBox_Annotation.Enabled = true; comboBox_Label.Enabled = true; button_Add.Enabled = true; label_AnnotationColor.Enabled = true; button_Color.Enabled = true; comboBox_FontSize.Enabled = true; textBox_Express.Enabled = true; dataGridView_Data.Enabled = true; } if (vLayer != null) { textBox_Name.Text = vLayer.Name; textBox_Expository.Text = vLayer.Expository; textBox_Type.Text = CommonUnit.ConvertLayerType(vLayer.Type.Value); if (vLayer.Color != -1) { label_Color.BackColor = Color.FromArgb(vLayer.Color); } else { label_Color.BackColor = Color.White; } checkBox_Annotation.Checked = vLayer.ShowAnnotation; string[] vColumnArray = VMainForm.GetColumns(vLayer.Name); comboBox_Label.DataSource = vColumnArray; //comboBox_Label.Text = vLayer.AnnotationField; textBox_Express.Text = vLayer.AnnotationField; if (vLayer.AnnotationFontColor != -1) { label_AnnotationColor.BackColor = Color.FromArgb(vLayer.AnnotationFontColor); } else { label_AnnotationColor.BackColor = Color.White; } comboBox_FontSize.Text = vLayer.AnnotationFontSize.ToString(); //层透明度 trackBar_Transparency.Value = vLayer.Transparency; label_Transparency.Text = string.Format("{0}%", vLayer.Transparency); //表数据 if (vLayer.Type != 3 && vLayer.Type != 5) { ILayer layer = VMainForm.GetLayerFromName(vLayer.Name); IFeatureLayer vFeatureLayer = layer as IFeatureLayer; DataTable vTable = CommonUnit.CreateFeaturesTableStruct(vFeatureLayer.FeatureClass); int vFeatureCount = vFeatureLayer.FeatureClass.FeatureCount(null); IFeatureCursor vFeatureCursor = vFeatureLayer.FeatureClass.Search(null, true); IFeature vFeature = vFeatureCursor.NextFeature(); while (vFeature != null) { DataRow vNewRow = vTable.NewRow(); for (int j = 0; j < vTable.Columns.Count; j++) { if (vFeatureLayer.FeatureClass.Fields.Field[j].Name != "Shape") { object vFieldValue = vFeature.get_Value(j); vNewRow[vFeatureLayer.FeatureClass.Fields.Field[j].Name] = vFieldValue; } } vTable.Rows.Add(vNewRow); vFeature = vFeatureCursor.NextFeature(); } vTable.AcceptChanges(); dataGridView_Data.DataSource = vTable; } button_Apply.Enabled = true; } }