• AE中地图查询方式


    樱木 原文 AE中地图查询方式

    地图查询主要有两种查询:空间查询和属性查询

    所用到知识点:

    1  Cursor(游标)对象

       本质上是一个指向数据的指针,本身不包含数据内容,提供一个连接到ROW对象或者要素对象(Feature)的桥梁而已。

       游标有三种类型,即查询游标、插入游标和更新游标。每一种游标都是通过与之相适应的方法来获得的,如Search、Insert和Update方法。更新和插入游标都需要使用一个过滤器(Filter)对象,因为它们首先必须获得需要进行操作的要素。

       FeatureCursor是Cursor的一个子类,指向一个或多个要素,它实现了IFeatureCursor接口,ArcGIS Engine开发所对矢量图层实现查询功能都是实行IFeatureCursor;

       其实凡是Search方法,如ILayer::Search、ITable::Search等都可以返回一个游标对象。这个Cursor指向了那些符合选择条件的要素

    IFeatureCursor接口重要成员:

    NextFeature(方法,将游标向前跳到下一个位置,并且返回该位置的Feature)
    UpdateFeature(Feature) (方法,对当前游标位置的Feature进行更新)

    InsertFeature(buffer) (方法,用参数传进来的属性值插入一个新的要素到数据库中,返回该插入新的Feature的ID值,其中参数类型为IFeatureBuffer)

    2  QueryFilter和SpatialFilter对象

     ArcGIS Engine提供了QueryFilter和SpatialFilter两个过滤器对象来配合完成查询条件的设置,从而查询到想要的数据。 QueryFilter过滤器主要用于对属性数据查询条件的设置,它主要实现IQueryFilter接口从而实现属性查询功能。

    IQueryFilter接口成员:

    WhereClause(读写属性,为过滤器设置条件语句)
    注意!各种不同的数据,设置条件查询语句的语法是不相同的,如一个shp文件在设置字段的时候要加“””双引号,而在SDE数据连接中,则什么都不加;在gdb文件的语句中,符号是“*”,而在SDE或者shp文件查询中则是“%”
    SubFields(读写,为过滤器设置提供赛选的字段,用逗号来分隔每一个逗号,如果不设置该属性,则当做所有字段均为查找字段)

    SpatialFilter过滤器主要用于空间范围查询条件的设置,它主要实现ISpatialFilter(继承 IQueryFilter接口)接口从而实现空间查询功能。

    其中SpatialRel属性是一个确定查询几何对象与目标要素几何对象关系的枚举值。

    3 要素选择集(FeatureSelection)对象

       获得符合某种条件的数据,一般有两种不同的手段:

    一种使用Search方法,它返回一个指向数据的查询Cursor对象:

      IFeatureCursor pFeatCursor = pFeatureLayer.Search(pFilter,false);
      IFeature pFeature=pFeatCursor.NextFeature();

    另一种是使用SelectFeatures方法构造一个选择集(SelectionSet),然后在选择集中得到Cursor,后者麻烦了点,但是得到的要素选择集在Map上会高亮度显示。

           IFeatureSelection pFSelection=pFeatureLayer as IFeatureSelection;
           pFSelection.SelectFeatures(pSpatialFilter,esriSelectionResultEnum.esriSelectionResultNew,false);
           ISelectionSet pSelectionset=pFSelection.SelectionSet;
           ICursor pCursor;
           pSelectionset.Search(null,true,out pCursor);
           IFeatureCursor pFeatCursor=pCursor as IFeatureCursor;
           IFeature pFeature=pFeatCursor.NextFeature();

    IFeatureSelection接口重要成员:

    SelectFeatures (Filter, Method, justOne ) (方法,根据指定的标准过滤器filter和方法,选择要素,第一个参数为QueryFilter类型的变量,第二个参数为esriSelectionResultEnum类型的变量,第三个参数为布尔型变量,通常为false)

    当然还有设置颜色的SelectionColor属性等;

    4 SelectionSet对象

         支持ISelectionSet接口,用于管理和查询一个选择集。

    Search(IQueryFilter,bool,ref ICursor)用于在选择集内进行再选择,

     
  • 相关阅读:
    C#中重写Equals和GetHashCode方法的案例
    idea调式技巧汇总
    JSONObject JSON与bean对象的转换
    浏览器,navicat,IDEA快捷键
    LocalDateTime、LocalDate、Date的相互转换
    新品上市|国产工业CPU平台,米尔MYCYT507核心板及开发板开启预售
    Redis底层数据结构
    asp.net core 阅读笔记
    模型的威力:基于模型,快速梳理源码
    Java开发工具和历史版本
  • 原文地址:https://www.cnblogs.com/arxive/p/6113412.html
Copyright © 2020-2023  润新知