SuperMap入门3——Hello World

Hello World程序很重要,对于入门来说,它可以检测我们的环境、配置是否正确,感受程序的易用性等。

添加工具

由于我是使用的VS2017+ SuperMap iObject绿色免安装版,所以新建工程后,没有相关的工具可以拖放使用,在工具上新建选项卡,右键选择项,浏览选择SuperMap.UI.Controls、SuperMap.Mapping、SuperMap.Data三个引用。

则可以拖放了。(拖放大大降低了初学者入门的门槛,为VS的这种方式点赞)

注意以下几个问题:

(1)新建的工程Framework版本如果不是4.0工具箱中到看到任何SuperMap工具(这说明SuperMap是基于Framework4.0)的。

(2)如果是使用64位的dll(即Bin_x64下的文件),将不支持控件的拖放

(3)如果熟练了,可以使用代码方式实现初始化控件等。

添加引用

将上面三个引用添加到项目的引用中,即可开始代码的开发,由于使用的VS2017,所以就没有下面这个了,只能浏览文件路径选择了。SuperMap iObject 9支持的VS版本是2010和2012。

其他引用根据需要添加了。

添加代码

然后添加官方的示例代码:

     //******打开工作空间******
        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();
            }
        }

  

注意以下几个问题:

(1)如果出现以下问题,请将平台的anycpu改为x86;

(2)如果你还在思考为什么SuperMap.Mapping的Version是7.0(见上图),那请停止思考,不要管它,官方人员解释说这不影响9.0的使用

(3)如果程序也没报错,打开后地图没有显示,看看是不是idesktop打开了此工作空间。

posted @ 2018-07-26 17:30  我也是个傻瓜  阅读(2068)  评论(1编辑  收藏  举报