Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        //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);
        }
Ejemplo n.º 3
0
 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);
         }
     }
 }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        // 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());
        }
Ejemplo n.º 7
0
        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;
            }
        }