1. 程式人生 > >ArcGIS Engine獲取柵格資料屬性值

ArcGIS Engine獲取柵格資料屬性值

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);
        }