程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南阳师范学院
本科学生实验报告
姓名孔亚洲院(系)环境科学与旅游学院专业GIS 班级09级 3班
实验课程名称 GIS应用软件开发
指导教师及职称张海军讲师
开课时间2011至2012学年第一学期南阳师范学院教务处编印
实验名称目录
实验一:ArcObjects中的对象和类
实验二:添加一个新工具
实验三:表的添加(AddTable)
实验四:要素类的添加(AddFeatureClasses)实验五:
实验六:
实验七:
实验八:
实验九:
实验十:
学生姓名:孔亚洲专业:地理信息系统班级: 09级3班
课程名称:GIS 应用软件开发实验名称:ArcObjects中的
类和对象
实验编号: 1
指导教师:张海军实验地点:N605实验时间:2011.10.3
小组合作:是()
否(√)
小组成员:
实验目的:通过本次实验,使大家Arcobjects中的入门知识,及一些概念
实验设备:
计算机
带有VBA的ArcGIS软件
实验内容及步骤:
AO包括对象和类。对象表达诸如道路、植被这样的空间要素。GDB中,一个对象对应着表中的一行,表中的列是对象的属性。类是具有类似属性的对象的集合。一个AO类可能具有内置的接口、属性和方法。
AO包括三种类型的类:
1)CoClass:最常用类型的类。在开发中,CoClass能使用对象声明语法直接创建新对象。例如:FeatureClass是一个CoClass,FeatureClass类允许创建一个新要素类对象作为FeatureClass这个CoClass的实例。VB或VBA中,Dim pFeatureClass as new FeatureClass。
2)abstract class:抽象类不能用于创建新对象,抽象类是子类的说明,即抽象类的存在使得其他类(即,抽象类的子类)能使用或共享该抽象类支持的属性和方法。例如:GeoDataset是一个抽象类,GeoDataset的存在使得地理数据集(如FeatureClass和Raster dataset)能共享GeoDataset这个抽象类支持的Extent和Spatial reference属性。
3)Class:Class不能直接创建新对象,但可以作为其他Class的一个属性创建一个Class的对象,或者从其他class的对象实例化。如Workspace是一个Class
Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New AccessWorkspaceFactory
Dim pWorkspace As Iworkspace
Set pWorkspace = pWorkspaceFactory.OpenFromFile("D:\Arc\myData", 0) 实验小结:
本次实验使大家了解了Arcobjects中的一些入门知识,及“类”“对象”等一些概念,使大家对Arcobjects有了初步的了解
指导教师评语及成绩:
学生姓名:孔亚洲专业:地理信息系统班级:09级3班
课程名称:GIS应用软件开发
实验名称:添加一个新
工具
实验编号:2
指导教师:张海军实验地点:N605实验时间:2011.11.7
小组合作:是()
否(√)
小组成员:
实验目的:
通过本次实验,使大家初步练习编写基于AO的Arcobjects小程序
实验设备:
计算机
带有VBA的ArcGIS软件
实验内容和步骤:
点击一个按钮执行一个任务。而工具在它完成一个任务之前,首先需要用户做一些事儿。与用户交互意味着工具比按钮需要考虑更多的事件和更多的编码。与工具关联的事件包括:Select、DblClick、MouseDown、MouseUp和MouseMove。程序如下:
Private Sub UIToolQuery_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long)
' Part 1: 获取用户点击的点
Dim pMxDoc As IMxDocument
Dim pActiveView As IActiveView
Dim m_blnMouseDown As Boolean
Dim pPoint As IPoint '提供了定义二维点的成员的访问
Set pMxDoc = ThisDocument
Set pActiveView = pMxDoc.FocusMap
'把用户在数据视图下输入的点从显示坐标转到地图坐标
Set pPoint = pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(x, y) '每个视图有一个ScreenDisplay对象控制着应用窗口的绘制
'使用ScreenDisplay属性获得关联于当前工作视图的ScreenDisplay对象的参考
'如,为了在数据视图中绘制一个多边形,必须获得IActiveView参考focus Map对象 '然后经由ScreenDisplay属性获得其ScreenDisplay对象的参考
'若在数据视图中错误地获得了IActiveView参考PageLayout对象,将看不到多边形,因你在错误的视图中绘制
'每个显示对象(如ScreenDisplay)管理一个(CoCreates)DisplayTransformation对