没有合适的资源?快使用搜索试试~ 我知道了~
ArcGIS_Engine 地图查询
4星 · 超过85%的资源 需积分: 1 7 下载量 33 浏览量
2013-05-16
09:06:06
上传
评论 3
收藏 561KB DOC 举报
温馨提示
试读
27页
详细介绍了ArcGIS_Engine空间和属性查询的步骤和方法,对初学者非常的有借鉴意义
资源推荐
资源详情
资源评论
地图查询、统计是一个 GIS
系统的基本的功能模块,实际上统计功能的前提也是通过查询获取
结果以文字或者图表等报表的形式展现查询结果数据。
地图查询有两种类型的查询:
空间查询:在地图上设置一定范围,查询这一范围内的要素。例如在地图上画一范围查询这
一区域内的所有消防栓,这一范围的所有消防栓高亮显示(或者其他显示方式)并展现出所有
的消防栓的属性信息。
属性查询:通过一定的查询条件获取目标要素。例如我们需要查询中国行政区上人口大于
万,同时 大于 万亿的省份,通过执行查询,符号条件的省份高亮显示(或者其他
显示方式)并展现出这些省份的属性信息。
ArcGIS 为开发者提供了无需写代码即可进行查询功能的 工具,但是这
个工具是一个通用的信息查询新工具。而开发者通常需要自己开发一套符合自己业务需求更加
灵活的查询功能模块,甚至一些功能不仅仅是查询信息,很多编辑编辑功能以及和业务相结合
的功能开发都用到查询功能。所以很有必要了解 Engine
的查询机制。
5.1 目标
1熟悉 , 对象 使用 接口
2熟悉 !", #"" 对象使用 !",#"" 接口
3熟悉要素选择集 " 对象,会使用 " " 接口
4开发一个属性查询小功能 $ 获取符号查询条件的 ,并
%& 接口创建一个新的要素图层加载到 '#" 上
5开发一个空间多边形查询功能的小 $ 学会创建内存半透明图层用于显示选择范围
5.2 准备工作
!"
"准备一份用于查询的的矢量数据(文章内有说明)
5.3Cursor 对象
(游标)本质上是一个指向数据的指针,本身并不包含数据内容,它是连接到 *+ 对象
或要素对象的桥梁。
,,游标有三种类型,即查询游标、插入游标和更新游标。每一种游标都是通过与之相适应的方
法来获得的,如 -、 和 .# 方法。更新和插入游标都需要使用一个过滤器
(")对象,因为它们首先必须获得需要进行操作的要素。
,,,,,, 对象支持的接口是 ,它定义了操作一个 *+ 集合或一个 *+ 对象的
属性和方法,下面是获得插入型、更新型和查询型游标的方法:
,,,,,,#/"()
使用 " 的 方法返回一个插入型游标,它通常用于往表中插入一条记录。
,,,,,,#/".#()
使用 " 的 .# 方法会返回一个更新型游标,它用于更新或者删除一条记录。
,,,,,,#/"-()
使用 " 的 - 方法对表进行查询后,可以得到一个查询型 对象,它
指向一个或多个 *+ 对象。
,,,,以我们这章的内容主要使用查询游标。
,,,, 是 的一个子类,指向一个或多个要素 它实现了
接口 开发所对矢量图层实现查询功能都是实行
。
5.4QueryFilter 对象与 SpatialFilter 对象
在关系型数据库中,查询条件是通过 !% 语句的 0- 子语句来完成的。在
中不能直接使用 !% 语句,但 提供了 !" 和
#"" 两个过滤器对象来配合完成查询条件的设置,从而查询到想要的数据。
,,,,,,!" 过滤器主要用于对属性数据查询条件的设置,它主要实现 !"
接口从而实现属性查询功能。
CODE:
设置过滤器对象的属性
人口
,
,,,,,,#"" 过滤器主要用于空间范围查询条件的设置,它主要实现 #""(继
承 !" 接口)接口从而实现空间查询功能。
CODE:
设置空间过滤器的范围(多边形)
! !
设置空间过滤器空间关系类型
""#!"
,
空间过滤器空间关系类型主要有以下几种类型如表一所示:
表
空间过滤器空间关系类型
描述# 是待查询图形,$ 是过滤条件图形%
esriSpatialRelUndened
未定义
esriSpatialRelIntersects
A 与 B 图形相交
esriSpatialRelEnvelopeIntersects
A 的 Envelope 和 B 的 Envelope 相交
esriSpatialRelIndexIntersects
A 与 B 索引相交
esriSpatialRelTouches
A与 B 边界相接
esriSpatialRelOverlaps
A 与 B 相叠加
esriSpatialRelCrosses
A 与 B 相交(两条线相交于一点,一条线和一个面相
交)
esriSpatialRelWithin
A 在 B 内
esriSpatialRelContains
A 包含 B
esriSpatialRelRelation
A 与 B 空间关联
,
,
5.5SelectionSet 要素选择集对象
熟悉 使用的开发者一定会知道当在 & 中显示查询结果的时,所有的符号
查询调教的要素都以蓝色高亮的形式显示在地图控件上,蓝色高亮显示表示高亮选中,这些高
亮显示选中的要素对应一个要素选择集对象中。通过 '( 的 ( 属性可以
获取选择集,')* 对象实现了 '( 接口。
实现代码如下:
IFeatureLayerpFeatureLayer =this.axMapControl1.get_Layer(0)asIFeatureLayer;
//QI 至 IFeatureSelection
IFeatureSelectionpFeatureSelection = pFeatureLayerasIFeatureSelection;
//创建过滤器
IQueryFilterpQueryFilter =newQueryFilterClass();
//设置过滤器对象的查询条件
pQueryFilter.WhereClause ="人口> 10000000";
//选择要素
pFeatureSelection.SelectFeatures(pQueryFilter,esriSelectionResultEnum.esriSelectionResult
New,false);
//获取选择集对象
ISelectionSetpSelectinSet=pFeatureSelection.SelectionSet;
//设置选择集的符号
pFeatureSelection.SelectionSymbol = pSymbol;
5.6 属性查询实例
+ 程序实现目标:
查询人口大于 的城市,并把查询结果创建为一个新的图层,如图 1-3 所示:
剩余26页未读,继续阅读
资源评论
- 地理信息产业发展2013-06-27不错,初学AE的人可以参考一下这个文档
2个卤蛋
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Docker容器配置进阶
- tensorflow-gpu-2.7.4-cp37-cp37m-manylinux2010-x86-64.whl
- 多段线、 圆、弧转多段线(仅我可见)
- tensorflow-2.7.2-cp38-cp38-manylinux2010-x86-64.whl
- yeyue-p8Yi4-ve4a83792.apk
- tensorflow-gpu-2.7.3-cp38-cp38-manylinux2010-x86-64.whl
- 五相感应电机矢量控制模型MATLAB
- RGLED (1) (1).circ
- IMG_20240427_215747.jpg
- python下前端WEB学习笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功