ArcEngine图层属性查询

以下代码实现了,根据给定的索引值layerindex,图层名称显示在Label中,将图层的属性名称添加到CheckedListBox中,将属性展示在DataGridView中。

            ILayer layer = mainForm.axMapControltemp.get_Layer(layerindex);
            IFeatureLayer pFeatureLayer = layer as IFeatureLayer;
            label1.Text = "您选择的是:"+pFeatureLayer.Name+" 图层";

            //加载属性数据
            ITable table = pFeatureLayer.FeatureClass as ITable;
            dataGridView1.ColumnCount = table.Fields.FieldCount;//要先指定<span style="font-family: Arial, Helvetica, sans-serif;">dataGridView1的列数</span>
            for (int i = 0; i < table.Fields.FieldCount; i++)
            {
                checkedListBox1.Items.Add(table.Fields.get_Field(i).Name.ToString());
                dataGridView1.Columns[i].Name = table.Fields.get_Field(i).Name.ToString();//属性名赋给列名
                dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;//自适应列宽
            }
            for (int i = 0; i < table.RowCount(null); i++)
            {
                int index = dataGridView1.Rows.Add();//获取当前行
                for (int j = 0; j < table.Fields.FieldCount; j++)
                {
                    if (table.Fields.get_Field(j).Type == esriFieldType.esriFieldTypeGeometry)//Arcgis属性中的特殊属性类型处理
                        dataGridView1.Rows[index].Cells[j].Value = GetFeatureShapeType(pFeatureLayer);
                    else
                        dataGridView1.Rows[index].Cells[j].Value = table.GetRow(i).get_Value(j).ToString();
                }
            } 
        private String GetFeatureShapeType(IFeatureLayer pFeatureLayer)//获取图层Shape类型的方法
        {
            String str;
            str = "error";
            if (pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPoint)
            {
                str = "Point";
            }
            else if (pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)
            {
                str = "Line";
            }
            else if (pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon)
            {
                str = "Polygon";
            }
            return str;
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值