实验二 地图显示和图层控制
更新时间:2023-12-10 09:18:01 阅读量: 教育文库 文档下载
- 实验二中推荐度:
- 相关推荐
实验二 地图显示和图层控制
(3学时)
实验数据:
请到教师课件里下载。实验数据为GIS开发技术A\\实验指导\\中的“实验数据.rar”
实验内容:
1. 加载图层及相关操作
2. 使用ArcGIS Engine中封装好的对象实现地图的操作 3. 使用TocControl控件控制图层 4. 使用TextElement绘制标注 5. 鹰眼图功能的实现
1.加载图层及相关操作
1)使用属性向MapControl中添加图层 (1)新建一个项目
启动Visual Studio.NET,在【文件】菜单中选择【新建项目】,在“新建项目”对话框中选择项目类型为“Visual C#”,模板为“Windows应用程序”,选择“位置”,点击“确定”保存该项目。
(2)添加选项卡
在“工具箱”的空白处单击鼠标右键,在弹出的快捷菜单中选择“添加选项卡”,然后在新增选项卡上输入“ESRI控件”作为选项卡标签。
1
(3)添加ArcGIS Engine控件
①右键点击“ESRI控件”标签,从快捷菜单中选择“选择项”。
②在弹出的“选择工具项”对话框中选择“.NET Framework 组件”选项卡,选中“AxLicenseControl”、“AxMapControl”、“AxTOCControl”、“AxToolbarControl”和“AxPageLayoutControl”等复选框,单击“确定”按钮,将所选择的控件添加到工具栏中。
③在项目菜单中选择“添加引用”,在弹出的“添加引用”对话框中添加以下常用的类库引用:
? ESRI.ArcGIS.Carto
2
? ESRI.ArcGIS.Display ? ESRI.ArcGIS.Geometry ? ESRI.ArcGIS.System ? ESRI.ArcGIS.SystemUI
(4)在窗体中嵌入ArcGIS Engine控件
双击工具箱中的“ESRI”标签栏中的AxMapControl和AxLicenseControl控件,将它们都添加到窗体上,并调整好大小和位置。
(5)右键单击MapControl控件,在弹出的对话框中选择【属性】
3
(6)在弹出的属性页窗体中添加图层
添加图层
(7)运行程序,显示结果
2)使用程序动态地向MapControl中添加图层
①使用绝对路径加载图层(请思考这种加载图层的方式有何局限性?) private void Form1_Load(object sender, EventArgs e) {
axMapControl1.AddShapeFile(\“, \ axMapControl1.AddShapeFile(“d:\\\\data\\\\world\\\\“, \ axMapControl1.AddShapeFile(\“, \}
②使用相对路径加载图层(要求同学们重点掌握这种加载图层的方式) private void Form1_Load(object sender, EventArgs e)
4
{
string CurrentPath = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(CurrentPath + \string FilePath = Directory.GetCurrentDirectory();
axMapControl1.AddShapeFile(FilePath, \axMapControl1.AddShapeFile(FilePath, \axMapControl1.AddShapeFile(FilePath, \}
3)图层的相关操作
(1)返回图层名称
在列表框中显示出地图中各个图层的图层名,如下图所示:
(2)控制图层的显示
通过复选框控制图层的显示与隐藏,如下图所示:
(3)控制图层的显示顺序
通过拖动列表框中的图层名来控制图层的显示顺序,如下图所示:
5
2.使用ArcGIS Engine中封装好的对象实现地图的操作
这部分实验请改写实验一中的地图操作代码,用ArcGIS Engine中封装好的对象实现地图的基本操作。
1) 常用的封装好的地图操作工具(Tool)
① ② ③ ④ ⑤ ⑥
ControlsMapZoomInToolClass (放大地图) ControlsMapZoomOutToolClass (缩小地图) ControlsMapPanToolClass (移动地图)
ControlsMapZoomPanToolClass (缩放/平移地图) ControlsMapIdentifyToolClass (点图查询) ControlsMapMeasureToolClass (量测工具)
2) 常用的封装好的地图操作命令(Command)
① ControlsMapZoomInFixedCommandClass (中心放大地图命令)
6
② ③ ④ ⑤ ControlsMapZoomOutFixedCommandClass (中心缩小地图命令) ControlsMapFullExtentCommandClass (全图显示命令) ControlsMapZoomToLastExtentBackCommandClass (前一视图命令) ControlsMapZoomToLastExtentForwardCommandClass(后一视图命令)
3)代码示例
①通过ControlsMapZoomInTool实现放大地图操作
ICommand Cmd;
Cmd=new ControlsMapZoomInToolClass(); Cmd.OnCreate(axMapControl1.Object); axMapControl1.CurrentTool=(ITool)Cmd;
②通过ControlsMapFullExtentCommand实现全图显示
ICommand cmd;
cmd = new ControlsMapFullExtentCommandClass(); cmd.OnCreate(axMapControl1.Object); cmd.OnClick();
3.使用TocControl控件控制图层
1)绑定TocControl控件
TocControl控件是ArcGIS Engine中用来管理MapControl中图层的控件,它的使用非常简单,只需要把它和对应的MapControl控件进行绑定即可。绑定的两种方法如下: (1)在控件属性中直接绑定
右键单击TocControl控件,在弹出的属性页对话框中设置“Buddy”这一项为要绑定的MapControl控件,如下图所示:
7
(2)使用代码进行动态绑定
也可以通过代码的方式把TocControl控件和MapControl控件进行绑定,代码如下: axTOCControl1.SetBuddyControl(axMapControl1); 2)使用TocControl控件对图层进行高级操作
(1)修改图层的名称
首先,在Form的Load事件中添加如下的代码:
axTOCControl1.LabelEdit = esriTOCControlEdit.esriTOCControlManual; 其次,在TocControl的OnEndLabelEdit事件中添加以下代码即可以实现图层名称的修改:
private void axTOCControl1_OnEndLabelEdit(object sender, TOCControlEvents_OnEndLabelEditEvent e) {
if (e.newLabel.Trim() == \ {
e.canEdit = false; } }
(2)拖动图层改变图层的叠放顺序
在TocControl控件的属性页中把“Enable Layer Drag and Drop”复选框选上即可以实现拖动图层改变图层顺序的操作。
(3)在TocControl上给图层添加快捷菜单
这部分实验要求鼠标右键点击TocControl控件的不同部位弹出不同的快捷菜单,并实现相应的功能。
① 当鼠标右键单击TocControl控件中的地图图标时,弹出如下的快捷菜单
8
请同学们通过代码实现快捷菜单中的具体功能。
② 当鼠标右键单击TocControl控件中的某个图层时,弹出如下的快捷菜单
请同学们通过代码实现快捷菜单中的具体功能。
4.使用TextElement绘制标注
选择country图层作为标注图层,以国家名进行图层的标注。标注的结果如下图所示:
9
5.鹰眼图功能的实现
具体要求:
① 实现鹰眼图和主地图同时装载一致的数据 ② 当在主地图中进行缩放、漫游等操作时,同时更新鹰眼图到对应的范围和位置 ③ 在鹰眼图中点击地图或者拖动矩形框时,主地图能够定位到对应的范围和位置
10
正在阅读:
实验二 地图显示和图层控制12-10
合作协议(淘宝达人机构)律师拟定版本07-27
国内主流安卓市场首发规范 - 图文12-09
第五单元t图形的运动练习题06-16
写陕北的窑洞的作文05-19
组培习题03-17
地理高一必修二知识点04-28
案例分析-某住宅小区消防设计专篇06-28
公司日常备用金管理规定03-20
敏捷开发个人体会和分享报告03-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 控制
- 地图
- 显示
- 财务机器人对会计从业人员的影响及应对探析
- 机械制造工艺课程课后答案(主编:陈明)
- 全国森林防火中长期发展规划
- 化学反应工程试题集及复习题
- 第一讲 铸造工艺理论基础测验题
- 中外电影名词解释
- 政治学原理课程题库
- 满庄二中九年级化学一模仿真试题
- 八年级国学经典诵读二十首诗词
- 创新工作室人员岗位职责(上传)
- 龚笑梅 毕业论文最终定稿
- 《大学物理习题集》(上)习题解答 - 图文
- 2012年乡镇卫生院护理三基考试试卷1
- 上海高三语文课文“《论语》七则”学案
- 四川省成都市青白江区祥福中学七年级数学上册2.4有理数的加法导学案2(无答案)(新版)北师大版
- 2018公路水运试验检测师公共基础真题答案解析及解析
- 用地性质调整论证报告 - 图文
- 10建筑工程发包与承包法律制度 任务型教学设计(学生用)
- 乡镇办公综合岗个人工作总结
- 《物流管理学》试题样题 - A