ArcGIS Engine开发之TocControl
TocControl控件简介
TocControl控件的主要作用是显示当前加载的图层有哪些、采用什么样的符号等,目的是使用户对当前加载的数据有一个总体的把握。与之相关联的伙伴控件有:MapControl,PageLayoutControl,ReaderControl,SceneControl,GlobeControl等。
一、TOCControl与数据视图的关联
关联的方式有两种,一种是代码的绑定,第二种是TOCControl控件的属性表中设置。
属性设置:在General选项卡中选择Buddy中进行关联。
代码绑定:axTOCControl.SetBuddyControl(mainMapControl);
二、图层显示顺序的调整
在应用中,有时需要对图层进行顺序调整,以免放生盖压导致部分图层不能显示,图层顺序的调整也有两种方法:
属性设置:通过属性选项卡General下的复选框Enable Layer Drag and Drop,即可实现图层的拖拽功能。
代码实现:分别在TOCControl控件的OnMouseDown和OnMouseUp两个事件设置,及HitTest()方法;
HitTest()方法的参数如下:
1 Public void HitTest( 3 int X,//当鼠标在TOCControl中按下时,参照TOCControl左上角为原点,以像素为单位, 4 int Y, //同上,返回鼠标的y坐标 5 ref esriTOCControlItem ItemType,//枚举常量 6 ref IBasicMap BasicMap,//绑定MapControl中的IBasicMap对象 7 ref ILayer Layer,//被点击的图层对象 8 ref object Unk,//图例组对象 9 ref object Data);//图例组中图例类的索引,根据索引和图例组可获得特定的图例类
ITOCControl接口的HitTest()方法可以返回TOCControl中点击坐标点处的对象类型ItemType。esriTOCControlItem类型对应的关系如下表:
对象 | 值 | 说明 |
esriTOCControlItemNone | 0 | 没有对象 |
esriTOCControlItemMap | 1 | Map对象 |
esriTOCControlItemLayer | 2 | Layer对象 |
esriTOCControlItemHeading | 3 | 对象的标题 |
esriTOCControlItemLegendClass | 4 | LegendClass |
三、实现思路
1)在TOCControl中,当鼠标点击时即在OnMouseDown事件中,拾取需要调整的图层,当鼠标弹起时即OnMouseUp事件中,获得图层移到位置的图层索引号。
2)使用IMap接口提供MoveLayer方法,将需要调整显示顺序的图层移动目标位置。
3)使用TOCControl的Update()方法,更新TOCControl控件中的图层顺序。
ArcGIS Engine开发之TocControl相关推荐
- ArcGIS Engine开发之旅02--ArcGIS Engine中的类库
原文 ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...
- ArcGIS Engine开发之旅08--和查询相关的对象和接口
ArcGIS Engine开发之旅08--和查询相关的对象和接口 原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性 ...
- ArcGIS Engine开发之旅09--几何对象和空间参考
1.Geometry Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处理一个包含几何形体的矢量对象:除了显示要素意外,控件对象选择,要素符 ...
- ArcGIS Engine开发-TOCControl中实现图层的拖放
TOCControl非常好,不用写一行代码就可以将整个地图的图层信息况显示出来: TOCControl也非常坏,提供的接口非常少,我认为有用的只有三个:HitTest,SetBuddyControl, ...
- GIS二次开发:实验一 ArcGIS Engine 开发初步
实验一 ArcGIS Engine 开发初步 一.实验目的 掌握ArcGIS Engine的安装: 熟悉ArcGIS Engine中几个常用的控件: 搭建第一个简单的ArcGIS Engine 程序: ...
- ArcGIS介绍:ArcObjects、 ArcGIS Desktop、ArcGIS Engine 和 ArcSDE、ArcIMS、ArcGIS Server
版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://hgg2002.blogbus.com/logs/45875381.html 在ArcGIS 9系列产品中,ArcGI ...
- 【ArcGIS Engine开发入门】1.简单显示地图LicenseContro,ToolbarControl,TOCControl,MapControl
必需是VS2012(下载的高版本VS不能装Engine,可以装俩个VS),和ArcMap 10.2(ArcGIS只能装一个,且必须要保证删干净) 下载安装可以看其他人的教程 .Arcgis Engin ...
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
Dixon 原文 用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...
- C#,ArcGIS Engine开发入门教程
利用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 Dixon整理 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法 ...
最新文章
- visual studio spy使用实现后台按键_多种精华液应该如何叠加使用?
- jquery_3month
- opencv相机标定
- 命令行下操作常用语句
- python多元回归预测例子_Python机器学习,多元线性回归分析问题
- 删除U盘作为启动盘的隐藏启动分区
- 计算机网络部分(共44题),全国自学考试自考04741计算机网络原理4月考试真题
- 使用javamail进行邮件发送
- Android P 网络报错 : java.io.IOException: Cleartext HTTP traffic to ***.com not permitted
- STM32(二)----寄存器讲解
- php音频格式 操作,php操作视频音频类-ffmpeg-php
- linux oom-killer
- 几款查看dll和exe信息的小工具
- 本地安装易邮邮箱服务器并用foxmail 连接测试
- Android Studio中修改APP图标和APP名称
- 【一款好用的安卓投屏软件Androidscreen】
- 【求回答】如何在mac上使用pip?zsh: command not found: pip
- Oracle常见sql语句练习及答案(经典题目,方便练习)
- Git提交单个文件过大,git error: remote unpack failed:error Object too large
- 如何2周拿到Google Cloud专业架构师认证
热门文章
- 关于Android工程师转成vue的三两事儿(4)--webpack
- CGMP, IGMP Snooping and RGMP
- 一个设置容器和网格布局的小技巧
- spring配置 quartz-config.xml
- 《重构-改善既有代码的设计》——读后总结
- [书目20161206]小狗钱钱的人生整理术
- 日常记录(4)让百度和google收录我们的网站
- 快速配置vs2012+opencv
- 【iOS】UIViewController、UINavigationController与UITabBarController的整合使用
- android内核读取file文件