众所周知,建立索引可以提高查询的效率,当对FeatureClass中的某一列频繁的查找,且数据量比较大时,建立索引是非常有必要的。
这里介绍一下,用 ArcGIS Engine 来建立一个属性索引。
IIndex pIndex = new IndexClass();
IIndexEdit pIndexEdit = pIndex as IIndexEdit;
IFields pFields = new FieldsClass();
IFieldsEdit pFieldsEdit = pFields as IFieldsEdit;
int feildindex = pFeatureClass.Fields.FindField("Name");
IField pField = pFeatureClass.Fields.Field[feildindex];
pFieldsEdit.FieldCount_2 = 1;
pFieldsEdit.set_Field(0, pField);
pIndexEdit.Fields_2 = pFields;
pIndexEdit.Name_2 = zidField;
pIndexEdit.IsAscending_2 = true;
pFeatureClass.AddIndex(pIndex);
这里用到了IIndex和IIndexEdit,IFields和IFieldsEdit,IFeatureClass等等。关于这些接口的相关用法,可以参考帮助文档 ArcObjects Help for .Net developers。