SuperMap二次开发入门(二)第一个程序

SuperMap二次开发入门(二)第一个程序

1、创建一个工作目录 D:\Myproject

在【SuperMap iObjects .NET 安装目录】\SampleData\World 中找到数据文件 World.smwu

World.uddWorld.udb

启动 Visual Studio 2010,然后创建新工程(文件 > 新建… > 项目)。

在已创建好的工作目录 D:\Myproject 下创建一个新工程,在项目类型中选择 Visual C#,在模板中选择Windows 窗体应用程序,设置该工程名称为 GettingStarted。如下图所示:

 SuperMap二次开发入门(二)第一个程序_第1张图片

在安装 SuperMap iObjects .NET 软件的时候,系统会自动将组件注册到 VS2010 的开发环境中。当用户打开工具箱的时候即可看到如图所示的效果。

SuperMap二次开发入门(二)第一个程序_第2张图片 

2、将窗体命名为 FormDemo;将 Workspace 对象添加到窗体中,并命名为 workspace1;将 MapControl控件添加到窗体中,并命名为 mapControl1。在窗体中加入 ToolStrip 工具条,在工具条上添加 Button 按钮,设置如下的属性值(其余属性取默认值即可):

 

最后,在窗体中添加 OpenFileDialog 控件,命名为 openFileDialog1。上述操作后的结果如下图所示:

 SuperMap二次开发入门(二)第一个程序_第3张图片

3、这里,以打开 SMWU 工作空间为例说明。

在正式编写示范程序之前,需要添加对 SuperMap iObjects .NET MappingUI Data 程序集的引用,进入代码编辑器,在最顶端添加如下代码。

using SuperMap.Data;

using SuperMap.Mapping;

using SuperMap.UI;

双击 FormDemo 窗体中的 toolStripOpen 按钮,进入代码编辑器toolStripOpen 的“toolStripOpen_Click”事件。

toolStripOpen_Click”事件处理方法中添加如下代码:

//******打开工作空间******

private void toolStripOpen_Click(object sender, EventArgs e)

{

//设置公用打开对话框

openFileDialog1.Filter = "SuperMap 工作空间文件(*.smwu)|*.smwu";

//判断打开的结果,如果打开就执行下列操作

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

//避免连续打开工作空间导致程序异常

mapControl1.Map.Close();

workspace1.Close();

mapControl1.Map.Refresh();

//定义打开工作空间文件名

String fileName = openFileDialog1.FileName;

//打开工作空间文件

WorkspaceConnectionInfo connectionInfo = new

WorkspaceConnectionInfo(fileName);

//打开工作空间

workspace1.Open(connectionInfo);

//建立 MapControl Workspace 的连接

mapControl1.Map.Workspace = workspace1;

//判断工作空间中是否有地图

if (workspace1.Maps.Count == 0)

{

MessageBox.Show("当前工作空间中不存在地图!");

return;

}

//通过名称打开工作空间中的地图

mapControl1.Map.Open("世界地图_Day");

//刷新地图窗口

mapControl1.Map.Refresh();

}

}

 

程序运行结束后,应当释放程序所占用的内存资源,本例结束运行时,需释放 MapControl 控件和Workspace 对象所占用的资源,并且,释放的顺序为:先释放 MapControl 控件,后释放 Workspace 对象占用的资源。因此,按照以下步骤在 FormDemo 窗体的 FormClosing 事件处理方法中添加相应的代码。

① 选择“视图”>“设计器”来显示设计视图。在设计视图中,请选定 FormDemo 窗体。

② 在“属性”窗口中,单击“事件”按钮,如图所示。

SuperMap二次开发入门(二)第一个程序_第4张图片 

③ 选择 FormClosing 事件。

④ 在 文 本 框 中 输 入 FormDemo_FormClosing , 然 后 按 回 车 键 。 随 后 会 创 建 一 个 名 为FormDemo_FormClosing 的事件方法,并在“代码和文本编辑器”窗口中显示,在该事件处理方法中添加释放对象资源的代码,结果如下所示。

// 释放的顺序推荐先释放 MapControl 控件,后释放 Workspace 对象

private void FormDemo_FormClosing(object sender, FormClosingEventArgs e)

{

mapControl1.Dispose();

workspace1.Close();

workspace1.Dispose();

}

 

运行代码后弹出如下界面,单击工具条上的“打开工作空间文件”按钮,选择示范数据中的 World.smwu工作空间文件,并打开,该工作空间中的“世界地图_Day”地图将显示在地图窗口中。

 SuperMap二次开发入门(二)第一个程序_第5张图片

注释:OpenFileDialog

OpenFileDialog Class

Provides a dialog box that enables the user to select one or more files.

System.Object

  System.Windows.Controls.OpenFileDialog

Namespace:  System.Windows.Controls

Assembly:  System.Windows (in System.Windows.dll)


OpenFileDialog.ShowDialog Method

Return Value

Type: System.Nullable

true if the user clicked OK; false if the user clicked Cancel or closed the dialog box.


地理信息科学

Writed By NX

QQ:1051926720


你可能感兴趣的:(SuperMap二次开发)