64位iObjects.Net组件如何在Visual Studio里创建SuperMap控件

作者:nannan

前言

       支持.Net组件这么久以来,客户打电话问的最多的是为什么我安装的控件拖不到form窗口中?或者64位组件的控件如何拖拽等等有关拖控件的问题。其实Visual Studio里只支持32位SuperMap控件拖拽,不支持64位。那怎样在64位的组件form窗口中放SuperMap控件呢?下面我们就详细介绍一下在Visual Studio里创建SuperMap控件的步骤。

一、创建项目

       双击Visual Studio,这里以Visual Studio2017为例。点击文件——新建——项目,选择Windows窗体应用(.Net Framework),输入自己的项目名称,点击确定即可。
在这里插入图片描述
在这里插入图片描述

二、环境部署

       其实SuperMap组件完全可以不用安装,直接在项目调用相关dll即可。但是注意前提是设置Path环境变量。

1.设置Path环境变量

       在我的电脑——属性里,点击高级系统设置——环境变量,然后设置Path环境变量为SuperMap iObjects.Net的安装路径的bin目录;如下图:
在这里插入图片描述
在这里插入图片描述

2.引用里调用64位SuperMap组件

       在Visual Studio创建的项目里引用右键点击添加引用,然后浏览本地64为iObjects.Net的组件bin路径,找到关键的这四个dll添加。
(1)SuperMap.Data.dll,Data 模块从产品中被独立出来,作为其核心模块,提供对空间数据及其属性的全面的操作和处理,包括创建、管理、访问和查询等等功能。
(2)SuperMap.Mapping.dll,Mapping模块,提供了综合的地图显示、风格设置、编辑、无界面出图、制作复杂专题图等功能。如果只做三维项目可不添加该模块。
(3)SuperMap.Realspace.dll,三维模块,利用球体对地球进行三维模拟,该球体具有地理参考,同时,还提供模拟地球大气层,地球上的雾效果的功能;在三维球体可以自由地进行三维浏览,如旋转、倾斜、缩放、漫游等,通过相机调整观看的视角。向三维场景添加各种地理数据,将已有的二维数据集作为三维图层添加到球体上,实现二三维一体化,并且对二维对象进行三维拉伸,从而进行三维渲染,如纹理贴图等。如果制作二维项目可不添加该模块。
(4)SuperMap.UI.Controls.dll。UI命名空间,包括Action,MapControl等。

在这里插入图片描述

在这里插入图片描述

3.在Form.cs里添加using指令

在这里插入图片描述

三、关键代码

1.在Form窗口设计控件分布区间

本文设计个和iDesktop窗体控件分布类似的窗口,左上分布工作空间管理器,左下分布图层管理器,右侧是地图和场景窗口。在Form窗口拖入Panel控件分布好区间位置,然后用它来装SuperMap控件。
在这里插入图片描述

2.代码创建控件

namespace SuperMap_Control
{
    
    
    public partial class Form1 : Form
    {
    
    
        private Workspace workspace;
        private WorkspaceControl workspaceControl;
        private MapControl mapControl;
        private SceneControl sceneControl;
        private LayersControl layersControl;
        public Form1()
        {
    
    
            InitializeComponent();
            workspace = new Workspace();
            workspaceControl = new WorkspaceControl();
            //将workspaceControl边框填充到其父组件里
            workspaceControl.Dock = DockStyle.Fill;
            //将指定的workspaceControl控件添加到panel1控件集合中
            panel1.Controls.Add(workspaceControl);

            layersControl = new LayersControl();
            layersControl.Dock = DockStyle.Fill;
            panel2.Controls.Add(layersControl);

            mapControl = new MapControl();
            mapControl.Dock = DockStyle.Fill;
            panel3.Controls.Add(mapControl);

            sceneControl = new SceneControl();
            sceneControl.Dock = DockStyle.Fill;
            panel4.Controls.Add(sceneControl);
            
            //工作空间和三大控件联动
            workspaceControl.WorkspaceTree.Workspace = workspace;
            mapControl.Map.Workspace = workspace;
            sceneControl.Scene.Workspace = workspace;
        }
    }
}

四、运行结果

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/supermapsupport/article/details/121036742