zoukankan      html  css  js  c++  java
  • Arc Engiene读取文档的属性

    image

    设计界面

    创建类

    image

    代码如下

    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
    }
    } image
  • 相关阅读:
    hdu 1058
    hdu 1003
    hdu 1500
    hdu 1083 最大匹配
    hdu 1370 中国剩余定理
    hdu 1299 数论 分解素因子
    hdu 1299
    poj 1144 求割点
    hdu 1068 最大独立集合
    hdu 1054
  • 原文地址:https://www.cnblogs.com/shangguanjinwen/p/3967277.html
Copyright © 2011-2022 走看看