地信开发实习报告.docx
- 文档编号:506506
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:34
- 大小:1.07MB
地信开发实习报告.docx
《地信开发实习报告.docx》由会员分享,可在线阅读,更多相关《地信开发实习报告.docx(34页珍藏版)》请在冰豆网上搜索。
地信开发实习报告
地信开发实习报告
地理信息系统开发与应用
实习报告
学生姓名翟德坤
专业年级09级空间
班级班组一班
实习日期2011.12.12-2011.12.16
指导教师董超
山东农业大学
《ArcGIS二次开发》教学实习
一、目的意义
通过实习使学生进一步理解地理信息系统的开发模式,熟悉ArcGIS二次开发环境,能够自行定制用户界面,对AO中的主要对象模型,包括Map、Element、MapGrid、Style、Symbol和Geodatabase等对象模型简单应用。
进一步巩固和深化理论知识,并利用AO中的MapControl控件结合实际案例进行开发,锻炼学生理论与实践相结合的能力。
培养学生的应用能力和创新能力,培养学生严肃认真、实事求是、吃苦耐劳、团结协作的精神。
要求学生必须参加每一个实习环节,协作完成实习任务,独立完成实习报告。
二、实习内容:
1、熟悉地理信息系统软件二次开发环境;
2、利用地理信息系统软件或开发平台,进行简单的二次开发;
3、利用MapControl控件制作相对鹰眼程序。
三、时间安排
时 间
任 务
周一上午
实习动员、熟悉开发环境,练习阅读OMD图。
周一下午
练习VBA开发实例。
(见附件AO)
周二上午
练习VBA开发实例。
(见附件AO)
周二下午
练习课件一、二中的例子。
周三
在二次开发环境中,练习第三章:
地图是如何组成的实例。
熟悉Map等对象模型。
周四
练习第五章:
AE地图的显示中的实例,熟悉symbol等对象。
周五
练习MapControl控件的使用。
结合实际,利用MapControl控件制作鹰眼程序。
最后总结完成实习报告。
四、实习内容及成果
(一)熟悉开发环境
ArcMap是ArcGIS家族的成员之一,它内置了一种集成编程环境―VBA(VisaulBasicforApllications)。
通过VBA编程,用户不但可以扩展ArcMap的菜单、工具条等,而且可以完成大多数用户的特定需求。
ArcMap中VBA编程的方法一般步骤如下:
写VBA宏(直接在VBA编辑器中编辑函数和过程)
1、如图1-1-1,单击菜单栏中的
图1-1-1
图1-1-2
2、在图1-1-3所示的窗口中,用户可以根据实际选择在Normal节点或者Project节点的ThisDocument、Forms、Modules中编写宏(函数或过程),Normal节点下所写的宏系统自动保存,除非用户删除,否则它将始终存在并在任何工程中都有效;而在Project节点下所写得宏随工程保存(如不保存工程,则宏也将不被保存),并只在工程中有效。
图1-1-3
3、运行VBA宏在VBA编辑器中写好VBA代码后,有两种方式运行:
第一,点击VBA编辑器工具条中的(运行)按钮,可立即运行写好的代码;第二,退出VBA编辑器,重新启动Macro对话框,如图2,选择要运行的VBA宏名称,点击
(二)练习VBA开发实例。
1.实例一
功能:
1.显示当前地图名称
代码:
SubZDKmacros()
DimpMxDocumentAsIMxDocument
SetpMxDocument=Application.Document
MsgBoxpMxDocument.FocusMap.Name
EndSub
结果:
2.实例二
功能:
1.显示地图集中第一幅地图的地图名称
代码:
SubZDKmacros2()
DimpMxDocumentAsIMxDocument
DimpMapsAsIMaps
DimpMapAsIMap
SetpMxDocument=Application.Document
SetpMaps=pMxDocument.Maps
IfpMaps.Count>1
SetpMap=pMaps.Item(0)
MsgBoxpMap.Name
EndIf
EndSub
结果:
3.实例三
功能:
1.显示当前地图层要素层层数
代码:
SubZDKmacros3()
DimpMxDocumentAsIMxDocument
DimpMapAsIMap
DimlCountAsLong
DimlIndexAsLong
SetpMxDocument=Application.Document
SetpMap=pMxDocument.FocusMap
lCount=0
ForlIndex=0To(pMap.LayerCount-1)
IfTypeOfpMap.Layer(lIndex)IsIFeatureLayerThen
lCount=lCount+1'计数器加1
EndIf
NextlIndex
MsgBox"Numberofthefeaturelayers"&_
"intheactivemap:
"&lCount
EndSub
结果:
4.实例四
功能:
1.显示地图集中第一幅地图的地图名称
2.显示错误数和错误信息
代码:
SubZDKmacros4()
DimpMxDocumentAsIMxDocument
DimpMapsAsIMaps
DimpMapAsIMap
OnErrorGoToSUB_ERROR
SetpMxDocument=Application.Document
SetpMaps=pMxDocument.Maps
SetpMap=pMaps.Item(0)
MsgBoxpMap.Name
ExitSub
SUB_ERROR:
MsgBox"Error:
"&Err.Number&"-"&Err.Description
EndSub
结果:
1.无错误
2.有错误
5.实例五
功能:
1.使当前地图的第一图层变为可视(可视的话不变,不可视变为可视)
2.刷新当前视图并刷新视图表
代码:
PublicSubZDKmacros5()
DimpMxDocumentAsIMxDocument
DimpMapAsIMap
DimpFeatureLayerAsIFeatureLayer
DimpActiveViewAsIActiveView
DimpContentsViewAsIContentsView
SetpMxDocument=ThisDocument
SetpMap=pMxDocument.FocusMap
SetpFeatureLayer=pMap.Layer(0)
IfNotpFeatureLayer.VisibleThen
pFeatureLayer.Visible=True
EndIf
SetpActiveView=pMap
pActiveView.Refresh
SetpContentsView=pMxDocument.CurrentContentsView
pContentsView.RefreshpFeatureLayer
EndSub
结果:
1.未使用前
2.使用后
6.实例六
功能:
1.按NAME查询要素,查找“shandong”字段。
代码:
SubZDKmacros6()
DimpColorAsIRgbColor
DimpMxdocumentAsIMxDocument
SetpMxdocument=Application.Document
DimpMapAsIMap
SetpMap=pMxdocument.FocusMap
DimpFeaturelayerAsIFeatureLayer
SetpFeaturelayer=pMap.Layer(0)
DimCitynameAsString
Cityname="Shandong"
DimpFeatureAsIFeature
SetpFeature=GetCityFeature(pFeaturelayer,Cityname)
DimpFeatureSAsIFeatureSelection
SetpFeatureS=pFeaturelayer
pFeatureS.AddpFeature
SetpFeatureS.SelectionColor=getRGB(0,0,120)
DimpDocAsIMxDocument
DimpActiveViewAsIActiveView
SetpDoc=Application.Document
SetpActiveView=pDoc.activeView
pActiveView.Extent=pDoc.activeView.FullExtent
pActiveView.Refresh
EndSub
PrivateFunctionGetCityFeature(pFeaturelayerAsIFeatureLayer,strCityNameAsString)AsIFeature
DimpFeatureClassAsIFeatureClass
DimpQueryFilterAsIQueryFilter
DimpFeatureCursorAsIFeatureCursor
SetpFeatureClass=pFeaturelayer.FeatureClass
SetpQueryFilter=NewQueryFilter
pQueryFilter.WhereClause="NAME_1='"&strCityName&"'"
SetpFeatureCursor=pFeatureClass.Search(pQueryFilter,False)
DimpFeatureAsIFeature
SetpFeature=pFeatureCursor.NextFeature
IfpFeatureIsNothingThen
SetGetCityFeature=Nothing
Else
SetGetCityFeature=pFeature
EndIf
EndFunction
PublicFunctiongetRGB(ByValredAsLong,ByValgreenAsLong,ByValblueAsLong)AsIColor
DimpColor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开发 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)