ArcEngine地图点击事件下的属性查询实例
3星 · 超过75%的资源 需积分: 39 43 浏览量
更新于2024-09-17
收藏 5KB TXT 举报
在ArcGIS Engine中,属性查询是一个关键的功能,用于检索地图层中的特定属性数据。本段代码是针对ArcMap Control(axMapControl)中实现鼠标点击事件(OnMouseDown)时的属性查询功能的一个片段。当用户点击一个特定按钮(barBtnProperty)且该按钮的Tag属性为真时,程序会执行属性查询操作。
首先,代码检查barBtnProperty.Tag的状态,如果为真,则执行以下步骤:
1. 将barBtnProperty.Tag设置为假,表示查询正在进行。
2. 定义并初始化几个关键的对象,如ILayer(图层)、IFeatureLayer(特征图层)、IFeatureSelection(特征选择)、IEnvelope(矩形范围)、IGeometry(几何对象)、ISpatialFilter(空间过滤器)、ISelectionSet(选择集)、IEnumIDs(枚举ID集合)等。
3. 计算鼠标点击位置与地图视图边界之间的距离(ext),用于创建查询范围的边界,这里是通过地图的宽度和比例缩放来动态调整查询范围的大小。
4. 创建一个Envelope类实例(pEnv)并将地图当前的Extent(边界)减去自定义的扩展值赋值给它,形成查询范围。
5. 将地图的鼠标点击坐标减去扩展值后的范围赋值给几何对象(pGeometry)。
6. 使用几何对象创建一个空间过滤器(pSpatialFilter),设置其关系运算符为esriSpatialRelIntersects,即交集,这样只返回与查询范围有交集的特征。
7. 创建一个FrmIdentity对象(FrmIdentityClass的实例),这是一个包含属性树视图的对话框,用于展示查询结果。设置对话框的位置为屏幕中心,并显示。
8. 清空属性树视图(AttributeTreeView)节点,然后开启显示线条选项。
9. 最后,调用FrmIdentity的CreatForm方法打开属性查询对话框,显示地图层的属性供用户查看或筛选。
这段代码的核心逻辑在于利用空间过滤器和鼠标点击位置,动态地执行属性查询,并将结果显示在一个交互式的属性树视图中,提高了用户的查询体验。通过这个例子,我们可以理解如何在ArcGIS Engine中结合用户交互进行高效的属性数据获取。
2018-08-27 上传
2022-09-20 上传
2013-11-13 上传
2019-03-29 上传
2019-04-19 上传
2022-07-15 上传
lxy1106
- 粉丝: 47
- 资源: 9
最新资源
- Walmar_PageFactory_Practice:此练习是为想要学习如何在Automation Framework中实现Page_Factory的新手创建的
- cm32181.rar_GIS编程_Unix_Linux_
- Meta4 ClickOnce Launcher-crx插件
- 4MB3_Replication_COVID
- IBOX-开源
- “ maintainVisibleContentPosition”道具对Android react-native的支持-Android开发
- 取消标记:做书签的开源应用程序
- 前端客户端
- centos-installation--configuration.zip_操作系统开发_PDF_
- C.R._Beginner_Lessons:C ++初学者作业
- Python_Programs:与python相关的基本程序
- ps-local-patrick:Patrick Sherman的本地存储库将用于PointSource项目
- 灰色网站后台登录web2.0模板下载
- mcfly:浏览您的shell历史记录。 伟大的斯科特!
- 开发人员职业框架:一个开放框架,用于软件开发人员围绕职业发展的对话
- vending-machine-kata