• 和查询相关的对象和接口


    查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性查询(和其他关系型数据库的查询类似),还提供了空间查询。在介绍查询的时候,让我们先了解下面的对象。

    Table对象
    Table是不含有空间信息的一张二维表,它主要实现了ITable接口。在这张二维表中,每一行称之为Row
    (IRow),ITable接口 定义了对这张二维表行的插入,更新,查询,以及删除等操作。
    独立表(standalone table):就是一个单独的不含空间信息的表也就是只能在ArcMap中Table of Contents
    的Source选项卡中看到的。
    对象类
    对象类是在Table的基础上扩展起来的,因此在外观上来看,它也是一个二维表,也是用来存储非空间数
    据,它与Table的区别在于它的一行是一个Object(对象),尽管在形式上也是一条记录,但它是具有属
    性和行为的一个对象,而非简单的记录了。
    FeatureClass对象  
    要素类是存储在工作空间中的一种数据组织方式,要素类是在对象类的基础上的进一步扩展,包含了现实
    世界中的空间实体。要素类由要素组成(Feature),要素对应要素类中的一行,要素相当于空间对象
    (Geometry )+相应的属性信息。IFeatureClass定义了对要素的查询,更新,删除等操作。关于ROW,Table,
    对象类,Feature,要素类,我们可以从下面的图上得到启示:

    FeatureClass对象实现了IFeatureClass接口,IFeatureClass对查询定义了两个方法
    IFeatureClass.Search和IFeatureClass.Select。
    Search方法需要传入两个参数,一个是过滤器;另外一个是布尔值,用于说明放回的要素游标是否被回收,
    一般的,如果仅仅是为了读取数据,那么这个参数应该是true,如果要对选择出来的要素更新,那么这个
    参数应该设置为false。那么这两个参数到底有什么意义,我们从下面的代码中看一下。
    false 和true参数的差别
    我们定义一个Search函数,通过传false和true来对这两个参数进行说明,代码如下:
        void  Search(IFeatureClass _pFeatureClass,bool _Bool)
            {
     
                IFeature pFt1, pFt2;
     
               IFeatureCursor pFtCursor;
               if (_Bool == false)
               {
                   pFtCursor = _pFeatureClass.Search(null, _Bool);
     
                   pFt1 = pFtCursor.NextFeature();
     
                   while (pFt1 != null)
                   {

    pFt2 = pFtCursor.NextFeature();
     
                       if (pFt1 == pFt2)
                       {
                           MessageBox.Show("Recycling 参数是 false");
                       }
                       pFt1 = pFtCursor.NextFeature();
     
                   }
               }
               else
               {
                   pFtCursor = _pFeatureClass.Search(null, _Bool);
     
                   pFt1 = pFtCursor.NextFeature();

                  while (pFt1 != null)
                  {
                      pFt2 = pFtCursor.NextFeature();
                      if (pFt1 == pFt2)
                      {
                          MessageBox.Show("Recycling 参数是true");
                      }
                      pFt1 = pFtCursor.NextFeature();
                  }
              }
           }

    Search和 Select方法的比较
    Search返回游标,Select返回选择集

  • 相关阅读:
    其实说起来要国庆节回去,心里有点担心再最后买不到票
    现在快要中秋节,之后又是国庆节
    天气开始降温,今天会下雨
    昨天晚上控制家里的电脑,与家里人视频
    有时候手机打开微信或者其它应用真的是非常慢
    手机有时候卡的不行,还是自己照顾着使用吧
    这几天晚上都是再看小别离,还是有点意思
    函数初识
    Python文件操作
    Python字符编码
  • 原文地址:https://www.cnblogs.com/qiushuixizhao/p/3245220.html
Copyright © 2020-2023  润新知