地信开发实习报告Word文档下载推荐.docx

上传人:b****1 文档编号:13433952 上传时间:2022-10-10 格式:DOCX 页数:34 大小:1.07MB
下载 相关 举报
地信开发实习报告Word文档下载推荐.docx_第1页
第1页 / 共34页
地信开发实习报告Word文档下载推荐.docx_第2页
第2页 / 共34页
地信开发实习报告Word文档下载推荐.docx_第3页
第3页 / 共34页
地信开发实习报告Word文档下载推荐.docx_第4页
第4页 / 共34页
地信开发实习报告Word文档下载推荐.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

地信开发实习报告Word文档下载推荐.docx

《地信开发实习报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《地信开发实习报告Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。

地信开发实习报告Word文档下载推荐.docx

3、利用MapControl控件制作相对鹰眼程序。

三、时间安排

时  间

任  务

周一上午

实习动员、熟悉开发环境,练习阅读OMD图。

周一下午

练习VBA开发实例。

(见附件AO)

周二上午

周二下午

练习课件一、二中的例子。

周三

在二次开发环境中,练习第三章:

地图是如何组成的实例。

熟悉Map等对象模型。

周四

练习第五章:

AE地图的显示中的实例,熟悉symbol等对象。

周五

练习MapControl控件的使用。

结合实际,利用MapControl控件制作鹰眼程序。

最后总结完成实习报告。

四、实习内容及成果

(一)熟悉开发环境

ArcMap是ArcGIS家族的成员之一,它内置了一种集成编程环境―VBA(VisaulBasicforApllications)。

通过VBA编程,用户不但可以扩展ArcMap的菜单、工具条等,而且可以完成大多数用户的特定需求。

ArcMap中VBA编程的方法一般步骤如下:

写VBA宏(直接在VBA编辑器中编辑函数和过程)

1、如图1-1-1,单击菜单栏中的<

Tools>

命令,选择<

Macros>

的<

VisualBasicEditor>

项,直接启动ArcMap的VBA编辑器;

或者选择<

项,进入如图1-1-2所示Macro对话框,在“MacroName”文本框中输入要创建的宏的名称,并点<

Create>

按钮,启动VBA编辑器。

图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宏名称,点击<

Run>

按钮即可运行相应的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

4.实例四

1.显示地图集中第一幅地图的地图名称

2.显示错误数和错误信息

SubZDKmacros4()

DimpMxDocumentAsIMxDocument

DimpMapsAsIMaps

DimpMapAsIMap

OnErrorGoToSUB_ERROR

ExitSub

SUB_ERROR:

MsgBox"

Error:

Err.Number&

-"

Err.Description

1.无错误

2.有错误

5.实例五

1.使当前地图的第一图层变为可视(可视的话不变,不可视变为可视)

2.刷新当前视图并刷新视图表

PublicSubZDKmacros5()

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

1.未使用前

2.使用后

6.实例六

1.按NAME查询要素,查找“shandong”字段。

SubZDKmacros6()

DimpColorAsIRgbColor

DimpMxdocumentAsIMxDocument

SetpMxdocument=Application.Document

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

PrivateFunctionGetCityFeature(pFeaturelayerAsIFeatureLayer,strCityNameAsString)AsIFeature

DimpFeatureClassAsIFeatureClass

DimpQueryFilterAsIQueryFilter

DimpFeatureCursorAsIFeatureCursor

SetpFeatureClass=pFeaturelayer.FeatureClass

SetpQueryFilter=NewQueryFilter

pQueryFilter.WhereClause="

NAME_1='

"

strCityName&

'

SetpFeatureCursor=pFeatureClass.Search(pQueryFilter,False)

SetpFeature=pFeatureCursor.NextFeature

IfpFeatureIsNothingThen

SetGetCityFeature=Nothing

Else

SetGetCityFeature=pFeature

EndFunction

PublicFunctiongetRGB(ByValredAsLong,ByValgreenAsLong,ByValblueAsLong)AsIColor

DimpColor

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1