ArcGIS Engine地理信息系统开发教程 第4章 查询统计_第1页
ArcGIS Engine地理信息系统开发教程 第4章 查询统计_第2页
ArcGIS Engine地理信息系统开发教程 第4章 查询统计_第3页
ArcGIS Engine地理信息系统开发教程 第4章 查询统计_第4页
ArcGIS Engine地理信息系统开发教程 第4章 查询统计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章查询统计目录

1目录1属性查询23图形查询空间查询4选择集56统计分析查询选项设置简介属性查询即基于空间数据的属性数据,通过用户提交由SQL查询语言中where子句定义的查询条件,对属性信息进行搜索,从而得到查询结果的操作。1.属性查询2相关类与接口(1)与属性查询功能相关的类主要有:QueryFilter、QueryDef、Cursor、FeatureCursor等(2)与属性查询功能相关的接口主要有:IQueryFilter、IQueryDef、ICursor、IFeatureCursor以及IFeatureSelection等1.属性查询3相关类与接口(1)用于根据属性值或关系来过滤数据(2)实现了IQueryFilter接口,该接口主要有以下属性和方法:WhereClause属性--设置用来过滤数据的where条件子句SubFields属性--定义用于数据过滤的属性字段列表,其默认值为“*”

1.属性查询4QueryFilter类相关类与接口(1)该类是ESRI的查询定义类,为ArcGIS

Engine中的Class类(2)不能被直接创建

可以由IFeatureWorkspace接口的CreateQueryDef方法创建(3)实现了IQueryDef接口,该接口的成员用来操作基于属性的查询,主要有以下属性和方法:Tables属性--定义所查询表的名称列表WhereClause属性--与IQueryFilter接口中WhereClause属性的用法相同SubFields属性--与IQueryFilter接口中SubFields属性的用法相同Evaluate方法--执行所定义的查询并返回查询结果集的游标1.属性查询5QueryDef类相关类与接口(1)该类是ESRI的游标类,为ArcGIS

Engine中的Class类(2)不能被直接创建可以由相关接口中的方法创建(3)游标接口主要包括ICursor接口和IFeatureCursor接口

IFeatureCursor接口--继承于ICursor接口

IFeatureCursor接口--用于操作要素(Feature)

ICursor接口--主要用于操作数据行

1.属性查询6Cursor类相关类与接口(1)该类是ESRI的要素游标类,为ArcGIS

Engine中的Class类(2)不能被直接创建可以由相关接口中的方法创建(3)实现了IFeatureCursor接口

该接口成员的用法与ICursor接口的成员类似,但是其操作的对象是要素(4)主要使用NextFeature方法将游标的位置向前移动一位,并返回该位置的要素对象

1.属性查询7FeatureCursor类相关类与接口(1)该类主要操作要素的集合及要素的可视化表达(2)实现了IFeatureLayer接口和IFeatureSelection接口IFeatureLayer接口

该接口的成员主要是要素图层(FeatureLayer)的各类常用属性和操作,其与查询相关的属性和方法有:

Selectable属性--用于获取或设置要素图层是否可以被选择

FeatureClass属性--用于获取或设置图层的要素类(FeatureClass)

Search方法--根据设置的查询条件创建查询结果的游标1.属性查询8FeatureLayer类相关类与接口IFeatureSelection接口该接口的成员用来控制该图层的要素选择集(FeatureSelection)

SelectFeatures方法--用于根据设置的查询条件和选择方法等来选择要素

SelectionSet属性--设置或获取单个矢量图层的选择集,其值为ISelectionSet接口类型1.属性查询9FeatureLayer类相关类与接口(1)该类为ArcGIS

Engine中的Class类(2)不能被直接创建

可以通过多种方式获取某个图层的要素类(3)实现了IFeatureClass接口,该接口的成员用于控制要素类的属性和行为,主要有以下方法:Search方法--根据查询条件进行查询并返回结果的游标Select方法--根据查询条件选择相应的要素,并将其放置在选择集中1.属性查询10FeatureClass类实例讲解1.属性查询11接口方法名称返回值说明IFeatureClassSearchIFeatureCursor返回查询结果集合的IFeatureCursor接口的游标。目的是为了遍历查询结果,在地图中不会显示查询结果。SelectISelectionSet返回结果为ISelectionSet接口的选择集。在地图中不会显示查询结果。IFeatureLayerSearchIFeatureCursor与IFeatureClass接口的Search方法相同IFeatureSelectionSelectFeaturesvoid无返回值。目的是根据查询条件选择要素,将在地图中高亮显示查询结果。IQueryDefEvaluateICursor根据设定的查询条件执行查询操作。返回值为ICursor接口的游标,可进行基于行的遍历。在地图中不会显示查询结果。相关接口中查询方法使用比较实例讲解

本例通过点击菜单弹出【属性信息查询】窗体,在窗体中构造查询条件,执行查询来得到查询结果。1.属性查询12实现思路(1)在实现主窗体的基础上,添加【根据属性信息查询】窗体(2)实现【根据属性信息查询】窗体的各类事件(3)通过窗体完成属性查询操作实例讲解1.属性查询13

该窗体用于显示及设置与属性查询相关的图层、选择方式、属性字段、where语句的运算符、所选择属性字段的值、最终的where语句以及执行查询的按钮等,以实现与ArcMap中类似的属性查询功能。窗体界面实例讲解1.属性查询14核心代码实例讲解1.属性查询15效果展示简介2.空间查询16

空间查询功能是通过用户选择的空间几何体以及该几何体与当前地图中要素之间的几何关系,进行空间查找,从而得到查询结果的操作。相关类与接口2.空间查询17(1)与空间查询相关的类主要是SpatialFilter类SpatialFilter类是空间关系过滤类(2)与空间查询相关的接口主要是ISpatialFilter接口等ISpatialFilter接口的成员主要用于返回和修改数据过滤器所使用的空间关系

ISpatialFilter接口同时包含了空间和属性两种查询约束

继承自IQueryFilter接口相关类与接口2.空间查询18(1)Geometry属性

设置或获取用来筛选数据的几何体,其值为IGeometry接口类型(2)GeometryField属性

获取或设置应用于查询过滤器中几何字段的名称(3)SpatialRel属性

获取或设置过滤器所要使用的空间关系,其值为esriSpatialRelEnum枚举类型,主要包括以下空间关系:

相交(esriSpatialRelIntersects)

覆盖(esriSpatialRelOverlaps)

跨越(esriSpatialRelCrosses)实例讲解2.空间查询19本例通过点击菜单弹出【空间查询】窗体,在窗体中构造查询条件,执行查询得到查询结果。实现思路(1)在实现主窗体的基础上,添加【根据空间位置选择】窗体(2)实现【根据空间位置选择】窗体的各类事件(3)通过窗体完成空间查询操作实例讲解2.空间查询20核心代码实例讲解2.空间查询21窗体界面效果展示简介3.图形查询22

图形查询是以用户通过鼠标操作生成的图形几何体(即ArcGIS中的Graphics)为输入条件进行查询的操作,其查询结果为该几何体空间范围内的所有要素。

常用的查询方式包括点选、线选、多边形选择、圆形选择和矩形选择等。相关类与接口3.图形查询23图形查询主要使用以下接口及方法:Map类的IMap接口中的方法Map类的IGraphics

Container接口

操控图形元素(Element)中的IElement接口IMap接口的SelectByShape方法--能够根据给定的几何体和选择环境(该参数可选),在当前地图中选择要素实例讲解3.图形查询24进行图形查询的方法主要有以下3种:(1)使用ArcGISEngine自带工具(2)使用代码(3)使用鼠标操作生成图形实例讲解3.图形查询25ArcGIS

Engine已经提供了基于图形查询的工具,以及绘制图形的工具(如绘制矩形工具、绘制圆形工具等),可以添加各种工具按钮来实现图形查询。使用ArcGISEngine自带工具实例讲解3.图形查询26(1)使用IGraphicsContainer接口遍历并获取当前地图中的每个图形(Graphics)(2)使用IElement接口访问获取的图形及其几何信息(3)使用SelectByShape方法进行基于图形的查询使用代码实现思路实例讲解3.图形查询27使用代码核心代码实例讲解3.图形查询28使用代码效果展示实例讲解3.图形查询29使用鼠标操作生成图形

通过鼠标点击在屏幕上绘制各种图形,然后进行图形查询的操作,这与空间数据编辑中生成新几何体的操作相同,涉及到ESRI.ArcGIS.Display命名空间中的IDisplayFeedback接口及实现该接口的相关类。简介4.选择集30(1)选择集是存放当前地图中查询、选择结果的集合

通过属性查询、空间查询和图形查询等方式进行查询操作后,查询结果就放置在选择集中(2)通过访问选择集可以获取所有的查询结果(3)ArcGIS中与地图相关的选择集有两种:整个地图的选择集和单个图层的选择集相关类与接口4.选择集31(1)与选择集相关的类主要有:Map、MapSelection、SelectionSet、FeatureLayer等(2)与选择集相关的接口有:IMap、ISelection、IEnumFeature、ISelectionSet、IFeatureSelection等相关类与接口4.选择集32IMap接口中与选择集相关的操作主要包括以下属性和方法:FeatureSelection属性--获取或设置当前整个地图的选择集,其返回值为ISelection接口类型SelectionCount属性--获取当前地图中已选择的要素总数ClearSelection方法--清空整个地图的选择集Map类相关类与接口4.选择集33(1)该类用于保存当前地图的要素选择集,为ArcGISEngine中的Class类(2)不能被直接创建(3)与选择集相关的操作需要用到该类的如下接口及方法:ISelection接口--该接口的成员用来操控可选择对象的集合IEnumFeature接口--该接口的成员可以遍历和重置要素的集合MapSelection类相关类与接口4.选择集34(1)SelectionSet类是ESRI选择集类,为ArcGIS

Engine中的Class类(2)不能被直接创建可以由IFeatureSelection接口的SelectionSet属性获得(3)实现了ISelectionSet接口该接口的成员用来管理已选择的数据表行或要素的集合,主要使用如下属性和方法:Count属性--获取选择集中要素的总数Search方法--对选择集中的数据进行筛选,返回筛选结果的游标SelectionSet类实例讲解4.选择集35

本例通过点击菜单弹出【地图选择集】窗体,在窗体内分图层显示当前地图中被选择的要素。实现思路(1)在实现主窗体的基础上,添加【地图选择集】窗体(2)实现【地图选择集】窗体的各类事件(3)根据当前地图所选择要素的情况显示相关信息实例讲解4.选择集36核心代码实例讲解4.选择集37窗体界面效果展示简介5.查询选项设置38查询选项的设置用于确定执行各类查询操作时共有的参数配置,如查询的空间容限值大小(即多少像素范围内的要素可以被查询到或被选中)、图形选择集的颜色等。相关类与接口5.查询选项设置39(1)与查询选项设置功能相关的类主要是SelectionEnvironment类

SelectionEnvironment类用于定义要素选择环境(2)与查询选项设置功能相关的接口主要是ISelectionEnvironment接口该接口的成员用于设置选择的环境变量,其中与查询选项设置功能相关的主要属性如下:

DefaultColor属性--获取或设置选择集要素的默认显示颜色

SearchTolerance属性--获取或设置查询的距离容限值实例讲解5.查询选项设置40本例通过点击菜单弹出【选择操作选项】窗体,在窗体中设置需要改变的参数值,则改变后的值将应用到后续的选择操作中。实现思路(1)在实现主窗体的基础上,添加【选择操作选项】窗体(2)实现【选择操作选项】窗体的各类事件(3)通过窗体完成参数值的设定实例讲解5.查询选项设置41窗体界面实例讲解5.查询选项设置42核心代码简介6.统计分析43统计分析是对查询结果数据的某一个字段进行信息统计,并生成分析报告的操作。目前支持的统计分析类型包括:统计结果的总个数、最大值、最小值、平均值、标准差和总和等6种统计量。相关类与接口6.统计分析44(1)与统计分析功能相关的类是DataStatistics类和BaseStatistics类(2)实现的接口分别

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论