快速入门

最后更新时间:2020年12月24日

3.1 C#快速入门

在此,通过开发一个简单的WinForm程序示例,让您尽快了解并熟悉C#开发。具体实现该示例步骤为:

(1) 在Micorsoft Visual Studio 2015(简称VS2015)中新建Windows窗体程序,界面如下图:

VS2015新建项目界面

图 3-1 VS2015新建项目界面

成功创建MapGISDemo程序之后如下所示:

创建的示例项目截面图

图 3-2 MapGISDemo示例项目界面图

(2) 调用Button按钮控件,从工具箱中调用按钮,在属性栏中修改该Button的Text属性值为“HelloWorld”,如图 3-3 所示:

添加Button按钮界面图

图 3-3 添加Button按钮界面图

(3) 注册该按钮单击事件,编写消息输出代码,如下图所示:

添加Button的Click事件代码图

图 3-4 添加Button的Click事件代码图

(4) 运行上述创建的窗体程序,其效果如图 3-5 、图 3-6 所示:

hello程序运行界面图

图 3-5 程序运行界面图

点击按钮响应界面图

图 3-6 点击按钮响应界面图

3.2 Objects快速入门

下面将演示通过Micorsoft Visual Studio 2015创建的Winform窗体,显示一幅二维地图,以助您快速了解MapGIS Objects .NET二次开发。具体实现步骤为:

3.2.1 新建Windows窗体程序

在VS2015中选择“文件→新建→项目”,然后在弹出框的左侧模板栏选择“Visual C#→Windows”,中间选择“Windows 窗体应用程序”,并设置“名称”、“位置”、“解决方案名称”等属性,新建项目界面图 3-7 所示:

新建项目界面图

图 3-7 VS2015新建项目界面图

3.2.2 设置.net框架兼容

VS2015创建的winform窗体,.net默认框架为4.0,为更好的兼容MapGIS系列功能,需添加一个配置文件,设置窗体兼容.net 4.0和.net 2.0。具体操作如下:

1.右键单击项目名,选择“添加”>“新建项”。

添加新建项

图 3-8 添加新建项

2.选择应用程序配置文件。

选择应用程序配置文件

图 3-9 选择应用程序配置文件

3.删除配置文件默认内容,粘贴以下内容:

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
 </startup>
</configuration>
3.2.3 加载MapGIS地图显示控件

地图显示控件由程序集“MapGIS.GISControl.dll”提供,该程序集位于MapGIS 10.5平台的MapGIS Object SDK目录(…\MapGIS 10\Program)中,地图显示控件类为MapControl 。

本示例目的为实现地图可视化,工程建好后,需添加MapGIS地图显示控件,具体操作如下:

1.地图显示控件由程序集“MapGIS.GISControl.dll”提供,在写代码之前,需添加该引用。

添加引用

图 3-10 添加引用

2.选择MapGIS安装路径(如:D:\MapGIS 10\Program),找到“MapGIS.GISControl.dll”,添加到工程。

选择GISControl.dll

图 3-11 选择GISControl.dll

3.引用添加成功后,即可进入Form的代码页面,首先添加命名空间,然后创建地图显示控件(MapControl),并添加到panel里。这里,先在Form设计页面,拖入一个panel,用来放地图显示控件。

设计界面

图 3-12 设计界面

加载地图显示控件关键代码

图 3-13 加载地图显示控件关键代码

至此,完成的地图显示控件加载,接下来将实现具体的功能!

3.2.4 添加必要的MapGIS程序集引用

为项目添加必要的MapGIS程序集引用,在此需引用MapGIS.GeoMap.dll、MapGIS.GISControl.dll。从MapGIS 10.5平台的MapGIS Objects SDK目录(…\MapGIS 10\program)找到上述两个程序集,单击“确定”按钮即可。实现程序集引用后如图 3-14 所示:

添加MapGIS程序集图

图 3-14 添加MapGIS程序集图

3.2.5 命名空间引用及变量定义

打开Form1的代码界面,分别添加程序集MapGIS.GeoMap.dll、MapGIS.GISControl.dll的命名空间引用,如下代码所示:

程序代码 3.1 命名空间引用关键代码

  using MapGIS.GeoMap;
  using MapGIS.GISControl;

接着,在类中添加变量定义的代码,如下代码所示:

程序代码 3.2 变量定义关键代码

   //地图文档对象
   Document doc = null;
   //地图对象
   Map map = null;

命名空间引用及变量定义代码添加完成后,如图 3-15 所示:

Form1的代码界面图

图 3-15 Form1的代码界面图

3.2.6 实现地图可视化功能

实现地图可视化功能,具体操作:在窗体加载事件(Form1_Load)处理函数里添加如下所示的代码。

程序代码 3.3 消息处理关键代码

    //打开指定地图文档
    doc = new Document();
    if (doc.Open(@"D:\MapGIS 10\Sample\地图文档.mapx") > 0)
    {
        //获取第一个地图
        map = doc.GetMaps().GetMap(0);
        if (map != null)
        {
            //显示地图
            this.mapCtrl.ActiveMap = map;
            //复位窗口
            this.mapCtrl.Restore();
        }
        else
        {
            MessageBox.Show("当前地图文档无地图数据");
            return;
        }
    }
    else
    {
        MessageBox.Show("打开失败!");
    }

注意:必须将地图文档中的图层对应的类所在的数据库加载到本地数据源下,否则打开地图文档在地图视图中显示不成功。

3.2.7 运行程序

打开地图文档功能实现后,点击“调试→启动调试”,程序运行效果如图图 3-16 所示:

地图显示效果

图 3-16 程序运行效果图