• ArcGIS Spatial Query


    Creates a spatial query which performs a spatial search for features in the supplied feature class and has the option to also apply an attribute query via a where clause.

    ///<summary>Creates a spatial query which performs a spatial search for features in the supplied feature class and has the option to also apply an attribute query via a where clause.</summary>
    ///  
    ///<param name="featureClass">An ESRI.ArcGIS.Geodatabase.IFeatureClass</param>
    ///<param name="searchGeometry">An ESRI.ArcGIS.Geometry.IGeometry (Only high-level geometries can be used)</param>
    ///<param name="spatialRelation">An ESRI.ArcGIS.Geodatabase.esriSpatialRelEnum (e.g., esriSpatialRelIntersects)</param>
    ///<param name="whereClause">A System.String, (e.g., "city_name = 'Redlands'").</param>
    ///   
    ///<returns>An IFeatureCursor holding the results of the query will be returned.</returns>
    ///   
    ///<remarks>Call the SpatialQuery method by passing in a reference to the Feature Class, a Geometry used for the search and the spatial operation to be preformed. An exmaple of a spatial opertaion would be intersects (e.g., esriSpatialRelEnum.esriSpatialRelContains). If you would like to return everything found by the spatial operation use "" for the where clause. Optionally a whereclause (e.g. "income > 1000") maybe applied if desired. The SQL syntax used to specify the where clause is the same as that of the underlying database holding the data.</remarks>
    public ESRI.ArcGIS.Geodatabase.IFeatureCursor PerformSpatialQuery(ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass, ESRI.ArcGIS.Geometry.IGeometry searchGeometry, ESRI.ArcGIS.Geodatabase.esriSpatialRelEnum spatialRelation, System.String whereClause)
    {
      // create a spatial query filter
      ESRI.ArcGIS.Geodatabase.ISpatialFilter spatialFilter = new ESRI.ArcGIS.Geodatabase.SpatialFilterClass();
    
      // specify the geometry to query with
      spatialFilter.Geometry = searchGeometry;
    
      // specify what the geometry field is called on the Feature Class that we will be querying against
      System.String nameOfShapeField = featureClass.ShapeFieldName;
      spatialFilter.GeometryField = nameOfShapeField;
    
      // specify the type of spatial operation to use
      spatialFilter.SpatialRel = spatialRelation;
    
      // create the where statement
      spatialFilter.WhereClause = whereClause;
    
      // perform the query and use a cursor to hold the results
      ESRI.ArcGIS.Geodatabase.IQueryFilter queryFilter = new ESRI.ArcGIS.Geodatabase.QueryFilterClass();
      queryFilter = (ESRI.ArcGIS.Geodatabase.IQueryFilter)spatialFilter;
      ESRI.ArcGIS.Geodatabase.IFeatureCursor featureCursor = featureClass.Search(queryFilter, false);
    
      return featureCursor;
    }
  • 相关阅读:
    Linux 下建立 Git 与 GitHub 的连接
    PHP Redis 对象方法手册
    wampServer 安装 Redis 扩展
    CentOS 与 Ubuntu 使用命令搭建 LAMP 环境
    Xshell 连接 CentOS 7 与 Ubuntu Server
    使用那各VUE的打印功能(print.js)出现多打印一个空白页的问题
    MySql数据库,查询数据导出时会出现重复的记录(数据越多越明显)
    解决 nginx 启动错误 nginx: [emerg] host not found in upstream
    关于nginx配置的一个报错connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory)
    网站的ssl证书即将过期,需要续费证书并更新
  • 原文地址:https://www.cnblogs.com/arxive/p/6120019.html
Copyright © 2020-2023  润新知