本文章实验的开发环境为visiostudio2010,arcgis-engine10.2。在实验中,通过实现c#中窗体程序中AE地图界面的基础操作对AE的基本功能进行学习。本文实验的代码链接置于文末,方便大家参考学习。
目录
一、放大、缩小、全图功能的实现
二、漫游功能实现
三、坐标功能的实现
四、书签功能的实现
五、鹰眼地图功能的实现
AE地图操作
一、放大、缩小、全图功能的实现
这里我们实现的是基于鼠标操作的放大、缩小功能。查看MapControl控件所能响应的事件。其中,选择"OnMouseDown"事件。双击MapControl进入代码编写,添加响应鼠标的相关代码。当然我们也可以使用c#工具箱中的相关按钮工具实现功能的消息传递。
左键拉框放大,右键缩放至全图。
二、漫游功能实现
该功能主要通过Pan函数实现,双击添加好的按钮控件,在相应的位置添加相关代码(如图),随着鼠标移动实现地图漫游的功能。
三、坐标功能的实现
在c#工具箱中选用stasusStrip工具条,放置于窗体的底部。添加两个项,分别对应坐标值和 比例尺值。通过string字符串实现坐标的显示。同时,修改坐标显示的单位名称。通过swith语句实现对应单位名称的选择。
最终实现加载:
四、书签功能的实现
书签的功能主要是帮助我们随时记录地图的位置信息,我们在AE中新建两个子窗体用于实现书签的加载和管理。新建一个窗体文件,命名为FrmCreateBookmark,该窗体主要是让用户创建书签。在对应的按钮下添加创建书签的相关功能。在主窗体的代码下调用我们写好的FrmCreateBookmark中的功能,实现书签的加载并对书签进行重名判断。
五、鹰眼地图功能的实现
鹰眼的功能需要实现主窗体和鹰眼窗体视图的同步,在鹰眼视图里画红框可以在主视图放大显示。在鹰眼视图里面鼠标左键画红框,右键拖动,代码中主视图为Mapcontrol1,鹰眼视图为MapControl2。主要利用了Envelope进行视图范围传递,从而控制视图同步等。
1、加入一个MapControl2作为鹰眼视图。将其名改为axMapEagle.
2、地图同步
地图内容的同步采用拷贝内容的方式,如下图,可以将主视图的内容同步至鹰眼视图(axMapEagle)。
3、对矩形框的属性进行设置:
继续使用鼠标事件实现左键画框、右键拖动:
最终成果:
本文实验链接:链接:https://pan.baidu.com/s/1WxaUX5pWYoQREPHjj77_7g
提取码:1234
————————————————
版权声明:本文为CSDN博主「房东不再养猫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47649329/article/details/124228229