ArcGIS Engine之查询、选择、统计

本文详细介绍了ArcGIS Engine中的查询与选择功能,包括查询和选择的操作对象、查询与选择的区别、按属性和空间关系筛选要素的方法。通过具体类如QueryFilter、SpatialFilter的应用,帮助读者理解如何在地理信息系统中高效地进行数据筛选。
摘要由CSDN通过智能技术生成

查询统计是地理信息系统的一大关键模块,选择是与查询类似的形式,查询的效率可以看出一个软件系统的优劣。ArcGIS Engine提供了高效的查询统计模块。我们从头开始讲述。

操作的对象

一、查询的对象

首先要明白是谁要执行查询,对什么进行查询。

AE中可以执行查询操作的有:FeatureLayer、FeatureClass,其查询的对象为Feature

二、选择的对象

AE中可以执行选择操作的有:FeatureClass、Map、FeatureSelection

注:FeatrueSelection是较为专业的选择类,它不仅能进行要素选择,还能设置选中要素的样式

FeatureSelection是抽象类,可以通过FeatureLayer转化而来

注意:Map的FeatureSelection属性返回结果为Selection,而Selecrtion是对于多个图层的选择集,二者不能互相转换

所以com开发转来转去到底是在干嘛,新手感觉好麻烦

IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection;

三、查询与选择的区别

选择可以同时对多个图层进行选择,而查询只能对于单个图层

查询返回的结果为:FeatureCursor,选择返回的结果为 Selection,(注意:不是FeatureSelection)

如何筛选要素

一、按属性筛选

1、QueryFilter类

QueryFilter既可以作为查询的参数,也可以作为选择的参数,其有两个主要属性:

属性

描述

WhereClause使用SQL语句表达式定义过滤数据的条件
SubFields指定返回的字段列表,如果有多项,项与项中间用逗号隔开
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = '"' + "FID" + '"' + "=1";

2、QueryDef类

没有遇到过,基本用第一个就应付得了。

二、按空间关系筛选

1、SpatialFilter类

类似QueryFilter类,SpatialFilter类有三个主要属性,必须同时指定

属性描述
Geometry设置用于筛选数据的几何体
GeometryField设置用于过滤的图形的字段,只有一个图形
SpatialRef其值为esriSpatialRelEnum枚举类型,用于指定要素之间的空间关系

处理的结果

查询结果集合

FeatureCursor,Cursor

二者可以互相转化

选择结果集合

Selection,EnumFeature

要获取Selection中的Feature,必须首先将其转化为IEnumFeature类型

FeatureSelection

这个类有些特殊,因此拿出来单独讲一下:

FeatureSelection有一个SelectFeatures,可以选择对象,并对选中的对象修改外观,同时它还有一个SelectionSet属性,用于获得Cursor,因此,如果既想要获得cursor同时又得到cursor,可以使用此类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值