Arc Engiene读取文档的属性

设计界面

创建类

代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ESRI.ArcGIS.Controls;
using System.Data;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;

namespace test
{
   public class DataHelper
    {
        #region 读取mapControl属性表
        public static DataTable GetAttribute(AxMapControl axMapControl)
        {
            int layerCount = axMapControl.Map.LayerCount;

// IFeature pFeature;
            string fieldName=string.Empty;
            int fieldCount;
            bool firstThroght=true;
            DataTable dataTable = new DataTable();
            //循环图层得到每一层的数据
            for (int l = 0; l < layerCount; l++)
            {
                IFeatureLayer pFeatureLayer = axMapControl.Map.get_Layer(l) as IFeatureLayer;
                IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
                fieldCount = pFeatureClass.Fields.FieldCount;
                int featureCount = pFeatureClass.FeatureCount(new QueryFilterClass());
                if (firstThroght)
                {
                    for (int i = 0; i < fieldCount; i++)
                    {
                        string fieldHeadName = pFeatureClass.Fields.get_Field(i).AliasName;
                        dataTable.Columns.Add(fieldHeadName);

}
                    firstThroght = false;
                }
                //判断feature的类型
                int indexofShape = pFeatureClass.FindField("Shape");
                ESRI.ArcGIS.Geometry.esriGeometryType pFeatureClassShapeType = pFeatureClass.ShapeType;
                for (int i = 0; i < featureCount; i++)
                {
                    DataRow dataRow = dataTable.NewRow();
                    for (int j = 0; j < fieldCount; j++)
                    {
                        if (j == indexofShape)
                        {
                            //Geometroy.shapetype转换
                            switch (pFeatureClassShapeType)
                            {
                                case esriGeometryType.esriGeometryPoint:
                                    fieldName = "Point";
                                    break;
                                case esriGeometryType.esriGeometryPolyline:
                                    fieldName = "Polyline";
                                    break;
                                case esriGeometryType.esriGeometryPolygon:
                                    fieldName = "Polygon";
                                    break;
                                default:
                                    break;
                            }
                            // fieldName = pFeatureClass.GetFeature(i).get_Value(j).ToString();
                            //dataTable.Columns.Add(fieldName);

dataRow[j] = fieldName;
                        }
                        else
                        {
                            //添加非shape字段到表中
                            fieldName = pFeatureClass.GetFeature(i).get_Value(j).ToString();
                            //dataTable.Columns.Add(fieldName);

dataRow[j] = fieldName;
                        }

//dataTable[i][j] = fieldName;
                    }
                    dataTable.Rows.Add(dataRow);

}
            }
            return dataTable;
        }
        #endregion
    }
}
时间: 2024-10-23 16:53:27

Arc Engiene读取文档的属性的相关文章

读取文档数据的各列的每行中

读取文档数据的各列的每行中 1.该文件的内容被读 [[email protected] leekwen]# cat userpwd 1412230101 ty001 1412230102 ty002 1512430102 ty003 1511230102 ty004 1411230102 ty002 1411240102 yt005 1412290102 yt012 1510230102 yt022 1512231212 yt032 2.脚本命令 [[email protected] leekw

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报 文档sharepointurl测试stringforms 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 1.在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试 2.在VS2010中新建空

C++中string类及文件流类(ofstream,ifstream)的基本操作---按行读取文档

先说明一个问题:java构建对象只能使用new的方法,而C++则不然. 下面代码实现读取test.txt文件中的内容并显示,同时将某一个字符串输入到文件test1.txt中. 函数getline(ifstream& param1, string& param2);按行读取文档,若处于文件尾部,返回false. 函数object.c_str();将字符串转换成字符数组,返回指针. 其它函数的使用请参照程序. // test_max.cpp : 定义控制台应用程序的入口点. // #inclu

Winform读取文档。然后创建,奇数行保存一个文档,偶数行保存一个文档

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Text.RegularExpressions; namespace TextModify

一个导入到本地读取文档的方法

一个导入到本地读取文档的方法 在网页上看到, 发现了一个比较好的插件 简悦 , 可以通过其中的一个功能, 下载为 markdown 文件. 发现是一个很不错的功能. 本来想去找一下, 有没有类似的 书签记录, 类似vim中的mark功能 但 vim 插件感觉有些重, 并且影响好多的快捷键操作. 原文地址:https://www.cnblogs.com/asdfq/p/10994197.html

用Properties类创建对象读取文档*txt格式书写ATM简单版本,看大神们有什么改进的,欢迎交流

先创建了一个ATM.txt格式的的文档,将卡的账号.密码.内存金额放在此文档 password=123money=5000userName=123 然后用类Properties创建一个对象,将银行卡的属性放进对象中,书写一个简单的ATM机实现简单的登录.存款.取款.查看.修改密码.退出程序等功能具体代码示例如下:package unit331; import java.io.FileReader; import java.io.FileWriter; import java.util.Prope

linux命令:脚本编程知识点${#VARNAME} ${VARNAME#* } . FILENAME 读取文档内容

脚本编程知识点: * FILE=/usr/local/src TEST=${FILE#*/}:$TEST结果为usr/local/src, 以/为关键字,删除从左边数第一个/及关键字/左边的所有字符串. DEST=${FILE##*/}:$DEST结果为src,以/为关键字,删除最后一个关键字/及关键字/左边的所有字符串. 从左往右时,*号需在关键字左边 DOTEST=${FILE%/*}:$DOTEST结果为/usr/local,以/为关键字,删除从右边数第一个/及关键字/右边的所有字符串.

写入文档、并读取文档

class Man implements java.io.Serializable{ private int id; private String name; private String gender; public Man(){ } public Man(int id, String name, String gender) { super(); this.id = id; this.name = name; this.gender = gender; } public int getId(

Python 文档__doc__属性

#coding:utf-8 '''这里是此模块(py)的__doc__属性,放在最顶端,作用是描述此模块的信息''' def square(x): ''' 这是一个求平方的函数,通过函数名.__doc__属性可以到的描述信息,相当于一些帮助信息二期 ''' return x**2 class Employee: '''这里是类的__doc__属性,通过类名.__doc__属性可以得到描述信息''' pass print square(4)print __doc__print square.__d