开发测试环境:WINDOWS 10 + Visual Studio 2015 企业版+ ArcGIS 10.8.1 + .Net Framework 4.6
声明:全文所涉及操作系统和软件均来自于互联网,只用于开发测试使用,如需要商业使用请购买正版授权许可或产品注册码。
软件安装和配置
由于编写本文之前,测试环境已搭建完成,未留下系统和软件的安装记录,因此本文所涉及的操作系统、开发工具、ArcGIS Desktop和ArcObjectsSDK for NET Framework的安装自行百度安装教程。
测试数据准备
通过ArcMAP建立开发需要使用的基础测试MXD文档和矢量数据GDB文件,后续因需在GDB文件中增加衍生数据。
Polyline:即为线要素,可统计线条长度,但不可统计面积。
Polygon:即为面要素,可统计面的周长和面积。
Point:即为点要素,可获取X坐标和Y坐标值(该项数据多为POI数据,较为简单,常用的为线要素和面要素)。
测试数据示意图
常用名词解释
VS:表示Visual Studio 2015(2015为版本号,低版本无法打开高版本的解决方案)
GIS软件:表示ArcMap软件
GDB:表示文件地理数据库
WinForm工程建立
打开VS后,鼠标依次单击【文件】à【新建】à【项目】à【Visual C#】à【Windows窗体应用程序】输入工程名称和保存位置后点击【确定按钮】即完成WinForm工程的建立。
建立WinFrom工程示意图1
建立WinFrom工程示意图2
加载GIS控件和运行
添加ESRI控件
在VS软件界面左边的工具箱栏中,右击鼠标,在弹出的菜单中鼠标单击【添加选项卡】,输入选项卡的名称,这里我输入的名称是ESRI。
添加选项卡示意图
在ESRI选项卡中鼠标右击,在弹出的菜单中鼠标单击【选择项】,弹出选择工具箱项界面,鼠标单击“.NET Framwork组件”选项卡,所有Ax****开头的组件均为ArcGIS组件,均打勾选上后,鼠标单击【确定】按钮,此时工具箱中的ESRI选项卡成功加载控件。
添加GIS组件示意图
设计WinForm布局
打开WinForm界面,从ESRI选项卡中添加AxToolbarControl(菜单控制组件)、AxTOCControl(图层控制组件)、AxMapControl(地图控制组件)和AxLicenseControl(许可控制组件)四个基础件,组件的添加或引用根据具体的软件功能决定。本轮是尝试将项目运行起来,因此不需要添加太多的组件,其中LicenseControl(许可控制组件)为必须添加的组件,不添加该组件则其它组件无法正常使用。
本工程的布局为由上至下,从左往右的布局方式,菜单组件放在上面,图层组件放在左侧,地图组件放在右侧。许可组件为运行时不显示组件,可以随意放置,本工程将许可组件放在界面的右下角。
添加ESRI组件和布局示意图
在MapControl组件中鼠标右击,单击【属性】打开组件的属性设置界面,在地图文档中找到需要加载的MXD文档后单击【确定】按钮,本工程加载的TEST.mxd样例文档,这样程序启动后将会加载TEST.mxd,和通过ArcMap打开TEST.mxd显示的是一样的效果。
地图组件设置示意图
在TOCControl组件中右击鼠标,单击【属性】打开组件的属性设置界面,这里在绑定控件中选择MapControl组件,设置后单击【确定】返回。设置后程序运行时将显示MapControl组件mxd文档中的图层。
图层组件设置示意图
编写代码
在别的大侠编写的教程中,是从VS的【项目】菜单中设置ESRI的许可,本测试环境由于VS环境中找不到对应的设置菜单,因此直接在工程的Program.cs类文件的Main方法中增加代码如下: ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop)
添加许可代码示意图
运行程序
在VS界面中找到启动的按钮,启动本工程,稍等片刻,即可以看到我们的程度已经可以正常运行,菜单组件暂时无法使用,这个在日后我们再进行研究。至此,我们基于ArcGIS Engine的二次开发之旅正式开始。
程序运行示意图
关注微信公众号:城市与交通规划设计工作室 ,获取更多资讯