最近在做管线的相关操作的时候涉及到了几何网络的相关内容,就是IGeometricNetwork这个接口的一些操作,我们在帮助文档的Network Analysis话题中可以找到相关的一些接口,注意不是Network Analyst哦!
在相关接口中我们通过IEIDHelepr,IEnumEIDInfo与IEIDInfo可以获得当前的Network中的某个NetElement对应的Feature,当我们获得这个Feature以后想要通过row[“字段”] = item.get_Value(item.Fields.FindField(“字段”));这样获得它的除了OBJECTID,Shape等空间字段以外的属性字段返回的都是null,也就是说这个feature并没有实际的包含了属性字段。
相信大家都在网上或者文档中看到过这样的代码:
ISelection selection = pMap.FeatureSelection;
IEnumFeatureSetup enumFeatureSetup = selection as IEnumFeatureSetup;
enumFeatureSetup.AllFields = true;
IEnumFeature enumFeature = enumFeatureSetup as IEnumFeature;
enumFeature.Reset();
IFeature feature = enumFeature.Next();
while (feature != null)
{
stringvalue = feature.get_Value(index).ToString();//就可以得到任意字段的值了
feature = enumFeature.Next();
}
这里我们获取的Feature要素选择集和上面所述的要素一样并没有包含属性字段的相关信息,所以需要相关的设置;
如果想要获得拥有属性字段的Feature,那么就需要获取IFeatureCursor接口的实例对象。
上面所述的我们获得的没有属性字段的Feature如何获得他的属性字段呢?
0-获取到该Feature所在的FeatureClass;
1-使用FeatureClass的GetFeature(int OID)方法再次获取到Feature
这里的OID可以通过之前的Feature.OID获得;
2-再次通过row[“字段”] = item.get_Value(item.Fields.FindField(“字段”));就可以获得到你想要的字段值了。
版权声明:本文为博主原创文章,未经博主允许不得转载。