预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共66页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学2ArcGISEngine二次开发入门5.1ArcGISEngine简介编辑要素(EditingFeatures)空间建模和分析三维可视化等这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。如果您之前没有接触过ArcGISEngine的开发,那么这个例子是您迈入ArcGISEngine二次开发大门的极好例子,如果您之前没有接触 C#.NET,也无需担心,这个例子将从零开始引导您一步一步完成任务。首先打开MicrosoftVisualStudio2005,点击菜单栏中的“文件”—>“新建项目”,在弹出的对话框中选择新建一个C#的Windows应用程序,之后更改项目名称为“MapView”,更改文件的路径为个人实习文件夹,点击“确定”即可。点击编译器最左侧的“工具箱”,在弹出的选择项中找到“ArcGISWindowsForms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。用同样的方法,再将LicenseControl添加到Form1中。如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。如果这一步操作之后仍然无法看到MapControl,则请滑动工具栏右侧的滚动条至最底部,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中找到“AxLicenseControl”和“AxMapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NETFramework组件”这个面板中找不到这两项,则选择“COM组件”面板,在“ESRILicenseControl”和“ESRIMapControl”前面打勾)。图26选择项…添加好MapControl和LicenseControl之后,调整Form1和MapControl的位置与大小,如下图所示:在MapControl上单击鼠标右键,选择“属性”,则会弹出MapControl的属性设置面板,在之前也介绍过,通过这个面板可以完成许多简单的工作。 如图所示,点击“Map”面板,之后点击按钮,在弹出的对话框中选择下图所示的路径(注:笔者的ArcGIS安装在D盘,若您的ArcGIS装在别的盘符,请做相应修改),再在此路径下选择“States”,点击“Open”。之后在MapControl的属性页上点击“确定”即可。至此,我们已经完成了一个最简单的地图显示程序,下面一起来看一下成果吧。点击“启动调试”按钮(或者在“调试”菜单下选择相应命令,或者按键盘的F5键),可以得到如下的运行结果。图32初次运行结果我们没有书写任何代码,就得到了一个最简单的地图显示程序。但这个程序还不能与用户交互,下一步我们需要添加一些代码,让程序能响应用户的鼠标,完成放大和全图显示的功能。双击MapControl控件,可以进入代码编辑界面。从窗口上方的下拉列表框中,我们能够看到MapControl能够响应的所有事件(关于每个事件的详细使用方法等请参见帮助系统,第六章对帮助系统有更加详细的介绍)。双击MapControl进入代码编辑界面的时候,默认的是“OnMouseDown”事件,下一步就需要在这个事件中添加响应鼠标的相关代码。 请您在PrivateSubAxMapControl1_OnMouseDown函数中添加如下代码: if(e.button==1) elseif(e.button==2) 再次运行程序,鼠标左键在地图上拉框可以实现地图的放大功能,而右键单击地图则会还原地图的全图显示。如果将代码替换如下,则能实现左键放大,右键漫游的功能。 if(e.button==1) elseif(e.button==2) 下面我们依次来看看这些代码都代表什么意思。首先看来第一段: if(e.button==1) elseif(e.button==2) 这个代码是一个IfElse条件语句,关于“e”的详细定义及其中包含的各参数,请参考帮助中与“IMapControlEvents2,OnMouseDownEventHandlerdelegate”关键字相关的内容。可以根据e中包含的“button”值来判断鼠标的单击操作是来自何处,若button值为1,则为鼠标左键,2代表鼠标右键,4代表鼠标中键。当判断得到是鼠标左键单击时,执行“AxMapControl1.Extent=AxMapControl1.TrackRectangle”这条