ArcGIS Engine獲取柵格資料屬性值
阿新 • • 發佈:2018-12-12
ArcGIS Engine提供獲取柵格資料的介面,要獲取柵格資料,首先要將IRaster轉為IRaster2,然後獲取IRatster2的屬性表ITable,最後從ITable中獲取值欄位。
獲取柵格資料
ILayer pLayer = axMapControl1.get_Layer(0);
IRasterLayer pRasterLayer = pLayer as IRasterLayer;
轉為IRaster2
IRaster2 pRaster = (IRaster2)pRasterLayer.Raster;
讀取屬性表
ITable table = pRaster.AttributeTable;
純柵格資料可能沒有屬性表,即為null,因此應首先判斷table是否為null,再進行下一步操作。
獲得屬性值
string attr = "";
for (int i = 0; i < table.Fields.FieldCount; i++)
{
attr += table.Fields.Field[i].Name;
}
全部程式碼(函式):
private void 讀取柵格屬性表ToolStripMenuItem_Click(object sender, EventArgs e) { ILayer pLayer = axMapControl1.get_Layer(0); IRasterLayer pRasterLayer = pLayer as IRasterLayer; IRaster2 pRaster = (IRaster2)pRasterLayer.Raster; ITable table = pRaster.AttributeTable; if (table == null) { MessageBox.Show("無屬性值"); return; } string attr = ""; for (int i = 0; i < table.Fields.FieldCount; i++) { attr += table.Fields.Field[i].Name; } MessageBox.Show(attr); }