基于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——字段屬性域 (可選)
用于限制地理資料庫中的表、要素類或子類型的任何特定屬性的允許值。必須指定現有屬性域的名稱才能将其應用于字段。