显示栅格图层和矢量图层的属性表(AE开发)
来源:互联网 发布:方正兰亭黑简体mac版 编辑:程序博客网 时间:2024/05/16 10:07
显示栅格图层和矢量图层的属性表
定义一个函数showAttributeTable()用于显示栅格图层或矢量数据图层的属性表,其参数pLyr为要显示属性的图层,在程序中添加一个dataGridView控件用于显示属性表。该函数的代码如下:
private void showAttributeTable(ILayer pLyr)
{
if (pLyr is IFeatureLayer)
{
DataTable pTable = new DataTable();
IFeatureLayer pFealyr = pLyr as IFeatureLayer;
IFeatureClass pFCls = pFealyr.FeatureClass;
string shape = "";
if (pFCls.ShapeType == esriGeometryType.esriGeometryPoint)
shape = "Point";
else if (pFCls.ShapeType == esriGeometryType.esriGeometryPolyline)
shape = "Polyline";
else if (pFCls.ShapeType == esriGeometryType.esriGeometryPolygon)
shape = "Polygon";
for (int i = 0; i < pFCls.Fields.FieldCount; i++)
{
pTable.Columns.Add(pFCls.Fields.get_Field(i).Name);
}
IFeatureCursor pCursor = pFCls.Search(null, false);
int ishape = pFCls.Fields.FindField("Shape");
IFeature pFea = pCursor.NextFeature();
while (pFea != null)
{
DataRow pRow = pTable.NewRow();
for (int i = 0; i < pFCls.Fields.FieldCount; i++)
{
if (i == ishape)
{
pRow[i] = shape;
continue;
}
pRow[i] = pFea.get_Value(i).ToString();
}
pTable.Rows.Add(pRow);
pFea = pCursor.NextFeature();
}
dataGridView1.DataSource = pTable;
}
else if (pLyr is IRasterLayer)
{
IRasterLayer pRlyr = pLyr as IRasterLayer;
IRaster pRaster = pRlyr.Raster;
IRasterProps pProp = pRaster as IRasterProps;
pProp.PixelType = rstPixelType.PT_LONG;
if (pProp.PixelType == rstPixelType.PT_LONG)
{
IRasterBandCollection pBcol = pRaster as IRasterBandCollection;
IRasterBand pBand = pBcol.Item(0);
ITable pRTable = pBand.AttributeTable;
DataTable pTable = new DataTable();
for (int i = 0; i < pRTable.Fields.FieldCount; i++)
pTable.Columns.Add(pRTable.Fields.get_Field(i).Name);
ICursor pCursor = pRTable.Search(null, false);
IRow pRrow = pCursor.NextRow();
while (pRrow != null)
{
DataRow pRow = pTable.NewRow();
for (int i = 0; i < pRrow.Fields.FieldCount; i++)
{
pRow[i] = pRrow.get_Value(i).ToString();
}
pTable.Rows.Add(pRow);
pRrow = pCursor.NextRow();
}
dataGridView1.DataSource = pTable;
}
}
}
- 显示栅格图层和矢量图层的属性表(AE开发)
- 显示栅格图层和矢量图层的属性表(AE开发)
- AE构建获取栅格图层属性表(ITable)
- QGis(一)加载栅格图层和矢量图层
- AE二次开发-判断栅格图层是否存在属性表,获取栅格字段的唯一值
- 提取矢量图层外部的栅格图
- WebGIS学习(七)WebGIS中栅格、矢量图层设计之栅格、矢量图层的本质
- AE开发图层右键打开属性表
- AE二次开发-获取图层的属性表
- ArcObjects c++ 获取栅格或矢量图层的范围
- AE开发----图层操作
- ArcMapControl不显示矢量图层的问题
- AE实现右键点击TOC控件任意图层显示属性表
- 如何打开选中的层或独立表的属性窗口【AO&AE开发】
- QGIS开发之矢量图层的使用
- AE中获取图层属性信息
- QGis二次开发基础 -- 矢量图层属性图表显示
- QGis二次开发基础 -- 矢量图层属性图表显示
- Network Analyst网络分析 教程下载
- 根据Excel表格建立Shp文件
- 空间数据查询——根据属性条件查询对象
- 空间数据查询——根据几何条件查询对象
- 全球高精度DEM免费下载
- 显示栅格图层和矢量图层的属性表(AE开发)
- 属性表的相关开发
- Raster数据的相关开发(一)
- php中session不能跨页传输的解决方案
- Raster数据的相关开发(二)
- Map Algebra 地图代数
- 自己写的兼容ie和ff的在线文本编辑器
- 我用的过滤字符函数
- GIS基础知识及ArcGIS产品介绍