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打开了此工作空间。