码迷,mamicode.com
首页 > 其他好文 > 详细

关于获得IFeature的属性字段

时间:2015-07-30 00:53:15      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

最近在做管线的相关操作的时候涉及到了几何网络的相关内容,就是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(“字段”));就可以获得到你想要的字段值了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于获得IFeature的属性字段

标签:

原文地址:http://blog.csdn.net/sx341125/article/details/47136209

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!