Arcengine, C#,有objectid返回Feature

1、       查询实现

/// <summary>

        /// 获得Feature

        /// </summary>

        /// <param name="pLineLayer"></param>

        /// <param name="FID"></param>

        /// <returns></returns>

        private IFeature GetFeatureByFID(IFeatureClass pFeatureClass, int FID)

        {

 

            IQueryFilter pQueryFilter = new QueryFilterClass();

            pQueryFilter.WhereClause =pFeatureClass.OIDFieldName+ "=" + FID;

            IFeatureCursor pFeatureCursor = pFeatureClass.Search(pQueryFilter, true);

            try

            {

                return pFeatureCursor.NextFeature();

            }

            finally

            {

                System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);

                System.Runtime.InteropServices.Marshal.ReleaseComObject(pQueryFilter);

            }

        }

2、       直接使用GetFeature

PFeatureClass.GetFeature(10);

3、       比较两者速度一样,方法二简单,方法一灵活,可以方便改为其他使用

4、       多个ID使用

      public void IFeatureClass__GetFeatures(IFeatureClass featureClass, string nameOfField)

        {

            //get the index of the field we are interested in

            int fieldIndexValue = featureClass.FindField(nameOfField);

 

            System.Collections.Generic.List<int> constructoidList = new System.Collections.Generic.List<int>();

            constructoidList.Add(1);

            constructoidList.Add(2);

            constructoidList.Add(3);

            constructoidList.Add(4);

            constructoidList.Add(10);

            int[] oidList = constructoidList.ToArray();

 

            IFeatureCursor featureCursor = featureClass.GetFeatures(oidList, false);

            IFeature feature = featureCursor.NextFeature();

            // loop through the returned features and get the value for the field

            while (feature != null)

            {

                //do something with each feature(ie update geometry or attribute)

                Console.WriteLine("The {0} field contains a value of {1}", nameOfField, feature.get_Value(fieldIndexValue));

                feature = featureCursor.NextFeature();

            }

 

        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值