关于获得IFeature的属性字段

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

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

时间: 2024-11-03 05:20:09

关于获得IFeature的属性字段的相关文章

sphinx中复合属性字段sql_attr_multi的用法

sphinx中复合属性字段sql_attr_multi的用法 sql_attr_multi在sphinx可以用来检索有层级关系的数据,效率相当高,如,在数据库中用一个4层的分类,分类下对应着不用的文章,现在需要做一个文章列表,要求,选择第一级分类时属于它的子分类的文章也要显示出来,就可以用下面的方法建索引 sql_query=                 SELECT di.company_document_id as id,di.company_document_id,          

c# XML序列化与反序列化 属性字段标识

序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAttribute("AGE")] public int Age { set; get; } } [XmlRoot("Root")] public class Student : People { [XmlElement("CLASS")] public

[ASP.NET MVC]如何定制Numeric属性/字段验证消息

原文:[ASP.NET MVC]如何定制Numeric属性/字段验证消息 对于一个Numeric属性/字段,ASP.NET MVC会自动进行数据类型的验证(客户端验证),以确保输入的是一个有效的数字,但是呈现在页面上的错误消息总是一段固定的文本:“The field {0} must be a number”,本篇提供一种解决方案使我们可以对此验证消息进行定制.[源代码从这里下载] 目录 一.针对Numeric属性/字段默认验证消息 二.默认的验证消息来源于何处? 三.通过自定义ModelVal

ArcEngine添加地图属性字段

/// <summary> /// 添加地图属性字段 /// </summary> /// <param name="name">名称</param> /// <param name="aliasName">别名</param> /// <param name="length">长度</param> /// <param name="d

C# 获取属性字段上DescriptionAttribute的值

var ent = new Ent(); foreach (var item in ent.GetType().GetProperties()) { var v = (DescriptionAttribute[])item.GetCustomAttributes(typeof(DescriptionAttribute), false); var descriptionName = v[0].Description; item.SetValue(ent,descriptionName+":1&qu

BizTalk开发系列(五) 属性字段

在根据消息内容进行路由的时候经常使用的是可分辨字段和属性字段.属性字段可以在各个 BizTalk Server 组件(包括管道和业务流程)中进行访问.属性字段还可用于消息路由.如果需要在上下文(而不是在业务流程)中访问升级的消息数据,必须创建一个或多个属性 架构来描述要升级的数据. 消息上下文中的每个属性均由以下三个部分构成:名称.命名空间和值.例如: <Property Name="InterchangeID" Namespace=http://schemas.microsof

[ArcGIS API for JavaScript 4.8] Sample Code-Popups-1-popupTemplate的概念和popup中属性字段值的多种表现形式

[官方文档:https://developers.arcgis.com/javascript/latest/sample-code/intro-popuptemplate/index.html] 一.Intro to PopupTemplate(关于popup模板) popups(弹出框)提供了一种简便的方式去查看layers(图层)或者graphics(图形)的属性信息.它也可以展示鼠标在view(视图)中的点击位置的坐标等其他相关信息.在ArcMap中,查看要素图层(shapefile)的属

JFinal Model判断数据库某条记录的属性字段是否包含空值

如果做报表,一条记录中有空值,使用FreeMarker渲染word会报错,并把错误日志输出到Word中.所以需要之前判断下当前记录中属性值是否有空值. package com.huijiasoft.utils; import java.util.Iterator; import java.util.Set; import java.util.Map.Entry; import com.huijiasoft.model.User; /** * @author pangPython * 数据库工具类

Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)

在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: 1.QGis二次开发基础 -- 属性识别工具的实现 2.QGis(三)查询矢量图层的要素属性字段值 原文地址:https://www.cnblogs.com/rainbow70626/p/10383034.html