作者:超图研究院技术支持中心-于丁1
SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置
三维场景框选是一种在三维空间中进行选择和操作的功能,它可以让使用者通过鼠标拖动来创建一个矩形框,以选择场景中的一部分或多个对象。这种框选功能在三维场景编辑和操作中非常有用,因为它可以帮助用户快速、准确地选择需要操作的对象,从而进行进一步的编辑、移动、删除等操作。
该功能在GIS行业的各类业务中是有极大作用的,比如:
在城市规划中,规划师可以框选一个街区或建筑物,进行细致的测量和规划,以便更有策略性的调控管理;
在土地资源管理中,管理者可以框选土地的某一部分一个地块或一条河流,进行详细的观察和分析;
在环境监测和保护中,环保工作者可以框选一片森林或一个湖泊,然后对其进行更细致的监测和保护;
在交通规划中,交通工程师可以框选一段道路或一座桥梁,然后对其进行更细致的规划和设计。
但是框选功能在iObject.NET组件中,并不像拖拽、漫游等功能有现成可用的接口,该项目将通过三篇详尽步骤文章,让完全没用过SuperMap iObject.NET的入门级新手,可以从0开始完成自己的业务项目。
《SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置》
《SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(二)——拖拽框选高亮的实现》
《SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(三)——选择对象实时属性可视化》
本文《SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置》将包括“获取组件+创建工程级框架配置+添加组件至工程+配置组件环境变量+项目添加iObject.NET引用+界面制作并添加三维场景球”这六个部分的详细步骤。
(在最后一篇文章会提供完整源码和示例数据)
一、使用工具及环境
Windows 11 专业版23H2
Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.7.5(以下简称vs)
SuperMap iObject.NET 11i(2023)V11.1.1及以上版本。(以下简称iObject或NET组件)
二、使用数据(仅演示)
三维点、线、面数据集数据各一份
白模模型数据集一份
精模模型数据一份
三、实现详解
1.获取组件
1.1下载SuperMap官网最新版iObject.NET
(当前最新版11i(2023)V11.1.1)
http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx
1.2解压下载的组件包
1.3找到组件的Bin_x64目录内为组件内容
2.创建工程及框架配置
2.1创建.NET Framework窗体应用工程
2.2填写项目名称并选用.NET Framework4.0框架
2.3 调整项目编译调试方案为64位
(因为当前最新版iObject.NET组件是64位的)
2.3.1调试模式下拉菜单选择“配置管理器…”
2.3.2活动解决方案平台下拉窗选择“<新建…>”
2.3.3新建x64的解决方案平台
键入或选择新平台选择“x64” ,从此处复制设置选择“空”,勾选创建新的项目平台
2.3.4新建x64解决方案平台成功,平台选择“x64”确认
2.3.5快捷调试方案模式里选择刚刚新建的“x64”
2.3.6启动运行调试,窗体启动成功则项目基本调试框架配置成功
3.添加组件至工程
方便项目完成后打包部署至应用客户端
3.1找到项目输出路径
解决方案下——方案名右键——属性——生成——输出路径
3.2项目输出文件夹中创建一个新文件夹“SuperMapiObject.NET”用来存放组件
(该文件夹名称可任意)
3.3将解压出来的组件“Bin_x64”部分完整解压到文件夹中
4.配置组件环境变量
将Bin_x64目录设为电脑系统path环境变量
4.1菜单栏输入“编辑系统环境变量”
4.2将“步骤1.3”中看到的Bin_x64完整路径设置为系统path环境变量
高级——环境变量——系统环境变量里的“Path”——编辑——新建——写入“组件Bin_x64目录”的完整路径
4.3将刚刚创建的环境变量“上移”至第一个确认
5.项目添加iObject.NET引用
5.1解决方案资源管理器下——解决方案——项目——引用右键“添加引用”
5.2浏览——打开组件“Bin_x64”目录位置——选择本次要使用的dll包
SuperMap.Data.dll
SuperMap.Realspace.dll
SuperMap.Realspace.Three3DDesign.dll
SuperMap.UI.Control.dll
5.3确认添加引用
5.4 可在右侧引用树中看到
6.界面制作并添加三维场景球
6.1重命名项目主窗体Form1
6.2命名为自己需要的名字并应用于所有
6.3修改窗体标题为自己需要的
点击窗体——属性面板——Text属性
6.4打开工具箱找到容器
工具箱(左侧选项卡或Ctrl+Alt+X)——容器——panel
6.5使用panle进行页面布局设计
(1)通过通拽到界面设计器上添加容器
(2)通过调整dock规整布局
(3)通过修改name属性标记容器
6.6生成窗体启动事件
点窗体空白处——右下角切换至窗体Form的属性——点击“闪电”进入事件——找到Load双击空白处生成窗体启动事件
6.7添加三维场景控件SceneControl
6.7.1主窗体代码中添加组件引用
using SuperMap.Data;
using SuperMap.Realspace;
using SuperMap.Realspace.ThreeDDesigner;
using SuperMap.UI;
6.7.2初始化三维球并添加到容器中
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SuperMap.Data;
using SuperMap.Realspace;
using SuperMap.Realspace.ThreeDDesigner;
using SuperMap.UI;
namespace Scene_BoxSelect
{
public partial class mainForm : Form
{
//定义该窗体内通用变量
SceneControl sceneControl_Main;
public mainForm()
{
InitializeComponent();
}
private void mainForm_Load(object sender, EventArgs e)
{
//实例化SceneControl三维场景控件
sceneControl_Main = new SceneControl();
//控制场景控件在容器内填充满
sceneControl_Main.Dock = DockStyle.Fill;
//将三维场景控件添加到界面设计的目标容器中
panel_Scene.Controls.Add(sceneControl_Main);
}
}
}
6.7.3启动调试可见三维球
详细步骤的说明内容较多,文章篇幅有限接下来的教程,请查看下期内容《SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(二)——拖拽框选高亮的实现》。
若对本文内容有疑问或讨论,可以向超图研究院支持中心进行咨询。
原文跳转 ↩︎