写一个很小众的帖子,估计没人会用到
在ArcGIS中,有两种别名 Alias
别名1
说明 上图是要素类中字段的别名,记录在要素类相关文件中,该要素类复制等操作,保留该别名。
通过ArcEngine配置时,直接通过IFields等接口可以直接设置(添加后无法设置)
别名2
说明, 上图是ArcMap中图层字段的别名,该别名记录在mxd中,不写入要素类中。图层添加时,默认读取要素类的别名配置,使用时可以在此覆盖设置,而不影响要素类的别名配置。
在ArcEngine中,通过接口ILayerFields接口可以对图层别名进行配置。
工作中,本来配置了要素类的字段名为英文,别名为中文,这样方便阅读与开发调用。但是,由于某些原因,业主觉得在地图服务中直接看到中文的属性名称觉得别扭,要求改成英文或拼音。但是直接修改要素类的别名后,以后维护无法看到中文说明,后来查资料,通过接口直接读取图层名称,修改了图层的别名。
示例代码如下:
ILayerFields plfds = pFtlyr as ILayerFields;
for (int i = 0; i < plfds.FieldCount; i++)
{
IField pField = plfds.get_Field(i);
IFieldInfo3 pInfo = plfds.get_FieldInfo(i) as IFieldInfo3;
System.Diagnostics.Debug.WriteLine(pField.Name+": "+pField.AliasName+" --- "+pInfo.Alias);
pInfo.Alias = pField.Name;
pInfo.Highlight = true;
}