gs设计及开发实验报告

上传人:第*** 文档编号:61906891 上传时间:2018-12-14 格式:DOCX 页数:177 大小:7.78MB
返回 下载 相关 举报
gs设计及开发实验报告_第1页
第1页 / 共177页
gs设计及开发实验报告_第2页
第2页 / 共177页
gs设计及开发实验报告_第3页
第3页 / 共177页
gs设计及开发实验报告_第4页
第4页 / 共177页
gs设计及开发实验报告_第5页
第5页 / 共177页
点击查看更多>>
资源描述

《gs设计及开发实验报告》由会员分享,可在线阅读,更多相关《gs设计及开发实验报告(177页珍藏版)》请在金锄头文库上搜索。

1、GIS设计与开发实验报告 姓 名: 郭 伟 学 号: X21114003 班 级: 11级地理信息系统p2.2 使用控件创建第一个桌面应用程序3 p2.3 访问地图范围及属性表13p2.4 命令、工具与命令条21p2.5 创建几何对象和空间参考41p2.6 空间数据库相关开发49P2.7 空间数据读取与输出61p2.8 空间查询72p2.9 空间分析85p2.10 符号化95p2.11 自己新建菜单编写程序120p2.2 使用控件创建第一个桌面应用程序实验目的:1)掌握使用控件创建桌面应用程序的主要流程;2)掌握MapControl控件、TOC控件、Toobar控件的特性及其与ArcMap中的

2、对应关系 3)编写代码实现加载 Mxd 文档、添加 Shape 文件、鹰眼放大等功能。 4)掌握ArcGIS Developer help查询接口帮助的方法 实验内容:1)使用控件创建桌面应用程序的主要流程; 2)代码加载 Mxd 文档 3)添加 Shape 文件4)鹰眼功能实验步骤:1.使用控件创建桌面应用程序的主要流程1) 新建一个 Windows 窗体应用程序(文件-新建-项目-Windos 窗体应用程序)2) 在点了确定之后,在 VS 的工具箱中找到到和 ArcGIS Engine 相关的控件 3) 然后添加 Toc, Map, Toolbar 控件。许可控件是首选的,否则无法使用4)

3、 添加地图文档(Map 控件-右键-属性)5) Toolbar 控件和 Toc 控件与 Map 控件的关联6) 在 Toolbar 中进行设置(Toolbar 控件-右键-属性-Itmes 选项)7) 添加工具命令在 Toolbar control 上右键属性在 items 选项卡中添加几个工具命令8) 运行结果运行我们的应用程序,发现错误,将下面的语句添加到使用AO 对象的前面:ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);2. 代码加载 Mxd 文档用代码添加 Mxd 文档,用到 AxMapControl.L

4、oadMxFile(sFilePath),我们只要将 Mxd 文档的路径传给这个方法即可。我们添加一个按钮:在这个按钮的单击事件中填写如下代码:3. 添加 Shape 文件这些方法的使用和上面的相似,方法中的参数可能不同,对于 AddShapeFile 来说,它需要两个参数,第一个参数是 shp 文件名所在的目录,第二个是文件名,因为打开 shp 文件要两个参数,所以构造一个数组,用来返回相应的参数代码如下: 4. 鹰眼图的实现鹰眼图的实现用到控件如下: 鹰眼图的实现所用到的控件及操作分析; 演示鹰眼功能,分析鹰眼功能涉及的控件和事件 (1)地图更新时的鹰眼效果; (2)图幅范围变化(如地图放

5、大、缩小、漫游)的鹰眼效果; (3)鹰眼窗口,鼠标左击、左键按住移动的鹰眼效果; 对于名称为 axMapControl1 的 MapControl 控件,只需要在 axMapControl1 的 OnExtentUpdated 和OnMapReplaced 中分别添加以下代码:对于名称为 axMapControl2 的 MapControl 控件,只需要在 axMapControl2 的 OnMouseMove 和OnMouseDown 中分别添加以下代码:运行后的效果如下: 5.课堂任务增加一状态栏,当地图放大缩小后显示图幅范围坐标值。 注意只显示小数位2位,添加控件在axMapContro

6、l1_OnExtentUpdated下添加以下代码:运行结果:实验总结:通过使用控件创建第一个桌面应用程序,掌握控件创建桌面应用程序的主要流程;初步了解MapControl控件、TOC控件、Toobar控件的特性及其与ArcMap中的对应关系 ;编写代码的过程中要注意代码的写的位置,例如按钮的Click事件,必须双击按钮再编写代码,不然程序不能正确运行;学会加载 Mxd 文档、添加 Shape 文件、鹰眼放大等功能代码的编写,其中加载 Mxd 文档、添加 Shape 文件的代码要注意文件格式。 掌握ArcGIS Developer help查询接口帮助的方法。p2.3 访问地图范围及属性表实验

7、目的:1)掌握Ienvelope、IGraphicsContainer、 IActiveView、Ilayer等接口; 2)掌握DataGridView、下拉菜单等界面控件; 3)指定颜色、指定线型、面符号等绘制矩形框; 4)修改代码错误; 5)读取属性表字段名称、记录内容等; 实验内容:1)鹰眼图的实现(实验p2.2已实现)2)显示属性表的信息 实验步骤:1. 打开属性表(1)添加菜单item(2)添加一个上下文菜单,添加一个新的 Form 窗体,在这个新的窗体上添加 GridView 控件,并在 TOCControl控件的 OnMouseDown 事件下添加如下代码(pGlobalFeat

8、ureLayer 是定义的一个全局变量):首先要定义一个全局变量pGlobalFeatureLayer在上下文菜单的打开属性表的 Click 事件中添加如下代码:在新的窗体中添加一个将属性表显示到 GridView 控件中的函数,如下:在添加函数之前,要定义属性表各个字段的属性,函数如下:(3)DataGridView控件的使用 注意:此处应该添加 DataGridView控件。因为GridView是Web ASP.net应用程序中才有的控件。试验:新生成一个web应用程序,在控件data栏目下,可找到GridView。DataGridView控件 1)指定字段数目; 2)显示字段名称; 3)

9、添加记录; 重新申明一个Ilayer接口全局变量 表格显示不出来的问题,DataGridView添加Column后再运行运行后,效果如下:课后任务:编写代码实现,统计属性表的字段数目和记录数目,对某数值字段计算其最大值、最小值、平均值、方差值等统计指标; 添加两个按钮,统计字段数,统计目录数,添加两个文本框显示统计的数目。运行代码如下:运行结果如下:对某数值字段计算其最大值、最小值、平均值、方差值等统计指标未能实现。实验总结:本次实验的难点主要在于属性表的创建,其中牵扯到窗体的传递。要注意定义全局变量和命名空间。在属性表所在的窗体中,要添加DataGridView控件(指定字段数目、显示字段名

10、称、添加记录),不然表格无法显示;对某数值字段计算其最大值、最小值、平均值、方差值等统计指标未能实现,写代码过程中要有数学公式的运算,难度大一点。p2.4 命令、工具与命令条 实验目的:1)掌握命令、工具、工具控件的异同; 2)掌握用代码将命令宿主到控件上; 3)掌握自定义命令按钮的编写; 4)掌握脱离ToolBarControl控件的命令和工具; 5)掌握地图视图和布局视图的同步; 实验内容:Task2.4.1 将一个命令宿主到 ToolBarControl 控件上;Task2.4.2 自定义命令按钮; Task2.4.3 脱离 ToolBarControl 控件的命令和工具 Task 2.

11、4.4 布局视图与地图视图同步; Task2.4.5 要素选择实验步骤:Task2.4.1 将一个命令宿主到 ToolBarControl 控件上增加一按钮,实现将一个命令宿主到 ToolBarControl 控件上双击按钮,添加如下代码(注意添加 using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.SystemUI;):Task2.4.2 自定义命令按钮1) 在项目工程中,”添加”,”类.”,新建“OpenMxdCommand”命令按钮类. ArcGIS Extending ArcObjects-选择Base Command,新建OpenMxdCo

12、mmand.cs选择和命令对象协作的控件2) 在构造函数中,修改OpenMxdCommand的属性3) 展开-重载类方法 4) hook对象及对hook进行判断5) 新增变量 pMapControl6) 添加OpenMxdCommand的OnClick事件代码注意: OpenDialog类需要 using System.Windows.Forms;IMapDocument接口 using ESRI.ArcGIS.Carto;7) 在主窗口load()函数中,将自定义OpenMxdCommand的命令宿主到 ToolBarControl8)运行效果Task2.4.3 脱离 ToolBarCont

13、rol 控件的命令和工具1) 添加菜单项,并在MenuItem_Click分别写入相应的代码注意:接口Icommand所需要的类库:Using ESRI.ArcGIS.SystemUI 运行效果如下:打开地图:添加数据:Task 2.4.4 地图视图与布局视图的同步1) MapControl 控件与 PageLayout 控件的联动2) 添加地图控件和布局控件在 Form 中添加 TabControl 控件,分别将地图控件和布局控件放置到里面,如下图所示. 把控件的名字改成地图视图和布局视图3) 为了保持地图视图和布局视图的同步,新增类ControlsSynchronizer.cs4) 在构造

14、函数中传入地图控件和布局控件(1)注意添加引用 using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.IO;using System.Runtime.InteropServices;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.SystemUI;5) 依次调试ControlsSynchronizer的各函数6) 类Maps的构造(1)在工程中,新增类Maps,并定义为 IMaps, IDisposable 的子类(2)调试在ControlsSynchronizer类中使用的Maps类的代码 7) 改动OpenNewMapDocument 类的OnClick ,实现 map 控件和布局控件的同步(1)OpenNewMapDocument 类中,添

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号