基于C#的AE二次开发之GP工具实现要素类添加字段
我的开发环境为ArcGIS Engine 10.2与Visual studio2010。主地图名称为axMapControl1。创建一个菜单或按钮,加入点击事件,粘贴代码即可实现。(注意相关事件的添加与动态链接库的引入)
- 效果预览
- 实现代码
private void 添加字段ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
//定义一个Geoprocessor工具类
Geoprocessor gp = new Geoprocessor();
//使用的是数据管理工具下的添加字段工具
ESRI.ArcGIS.DataManagementTools.AddField addField = new ESRI.ArcGIS.DataManagementTools.AddField();
if (axMapControl1.get_Layer(0) != null)
{
//将第一个图层强制转换为FeatureLayer
IFeatureLayer currentFeatureLater = axMapControl1.get_Layer(0) as IFeatureLayer;
//将首图层要素类强制转化为表
ESRI.ArcGIS.Geodatabase.ITable pTable = currentFeatureLater as ESRI.ArcGIS.Geodatabase.ITable;
addField.in_table = pTable;//输入要添加字段的要素类属性表
addField.field_name = "number4";//添加字段的名称
//字段类型有:TEXT、SHORT、LONG、FLOAT、DOUBLE、DATE、BLOB、RASTER、GUID
addField.field_type = "DOUBLE";
//其他属性例如field_scale(字段精度)、field_length(字段长度)等等,核心是上面这几个
gp.Execute(addField, null);
//强提醒
MessageBox.Show("字段添加成功!");
}
}
catch (Exception ex)
{
//如果添加字段的名称已存在且字段类型一致,不会执行字段添加;
//如果添加字段的名称已存在且字段类型不一致,会报错。
MessageBox.Show("字段添加失败" + ex);
}
}
- 补充
-
field_type—— 字段类型
TEXT—任何字符串。
FLOAT— 在 -3.4E38 和 1.2E38 之间的小数。
DOUBLE— 在 -2.2E308 和 1.8E308 之间的小数。
SHORT— 在 -32,768 和 32,767 之间的整数。
LONG— 在 -2,147,483,648 和 2,147,483,647 之间的整数。
DATE—日期和/或时间。
BLOB—长二进制数序列。您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
RASTER—栅格影像。可以存储 ArcGIS 软件支持的所有栅格数据集格式,但强烈建议您仅使用小影像。
GUID—全局唯一标识符。 -
field_scale—— 字段精度 (可选)
可存储在字段中的位数。所有位都将被计算在内,而无论其处于小数点的哪一侧。如果输入表是文件或个人地理数据库,则将忽略字段精度值。 -
field_precision——字段小数位数 (可选)
可存储在字段中的小数位数。此参数仅可用于浮点型和双精度数据字段类型。
如果输入表是文件或个人地理数据库,则将忽略字段小数位数值。 -
field_alias——字段别名 (可选)
指定给字段名称的备用名称。此名称用于为含义隐晦的的字段名称指定更具描述性的名称。字段别名参数仅适用于地理数据库。 -
field_domain——字段属性域 (可选)
用于约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。必须指定现有属性域的名称才能将其应用于字段。