ArcGIS Engine基础开发教程之地图查询

5.4QueryFilter对象与SpatialFilter对象   
     在关系型数据库中,查询条件是通过SQL语句的Where子语句来完成的。在ArcGIS Engine中不能直接使用SQL语句,但ArcGIS Engine提供了QueryFilter和SpatialFilter两个过滤器对象来配合完成查询条件的设置,从而查询到想要的数据。
          QueryFilter过滤器主要用于对属性数据查询条件的设置,它主要实现IQueryFilter接口从而实现属性查询功能。

CODE:


IQueryFilter pQueryFilter = new QueryFilterClass();


//设置过滤器对象的属性
pQueryFilter.WhereClause = "人口> 10000000";

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

CODE:


ISpatialFilter pSpatialFilter = new SpatialFilterClass();


//设置空间过滤器的范围(多边形)
pSpatialFilter.Geometry = pGeometry;


//设置空间过滤器空间关系类型
pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;


空间过滤器空间关系类型主要有以下几种类型如表一所示:

1


空间过滤器空间关系类型描述(A是待查询图形,B是过滤条件图形)
esriSpatialRelUndefined未定义
esriSpatialRelIntersectsAB图形相交
esriSpatialRelEnvelopeIntersectsAEnvelopeBEnvelope相交
esriSpatialRelIndexIntersectsAB索引相交
esriSpatialRelTouchesA与B边界相接
esriSpatialRelOverlapsAB相叠加
esriSpatialRelCrossesAB相交(两条线相交于一点,一条线和一个面相交)
esriSpatialRelWithinAB
esriSpatialRelContainsA包含B
esriSpatialRelRelationAB空间关联
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值