SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置

news2024/11/26 20:25:10

作者:超图研究院技术支持中心-于丁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属性标记容器
在这里插入图片描述

iObject.NET三维场景拖拽—Panel布局设计

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三维场景拖拽框选实现详解及完整源代码(二)——拖拽框选高亮的实现》。
若对本文内容有疑问或讨论,可以向超图研究院支持中心进行咨询。


  1. 原文跳转 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

stu06-VSCode里的常用快捷键

Alt Z&#xff1a;文字自动换行。当一行的文字太长时&#xff0c;可以使用。或者查看→自动换行Alt Shift ↓ &#xff1a;快速复制当前行到下一行Alt Shift ↑ &#xff1a;快速复制当前行到上一行Alt B&#xff1a;在默认浏览器中打开当前.html文件Ctrl Enter&#xf…

前端 Web Workers 简介

简介 以前我们总说&#xff0c;JS 是单线程没有多线程&#xff0c;当 JS 在页面中运行长耗时同步任务的时候就会导致页面假死影响用户体验&#xff0c;从而需要设置把任务放在任务队列中&#xff1b;执行任务队列中的任务也并非多线程进行的&#xff0c;然而现在 HTML5 提供了…

如何一个例子玩明白GIT

一个例子玩明白GIT GIT的介绍和教程五花八门&#xff0c;但实际需要用的就是建仓、推送、拉取等操作&#xff0c;这儿咱可以通过一个例子熟悉这些操作&#xff0c;一次性搞定GIT的使用方法学习。下面这个例子的内容是内容是建立初始版本库&#xff0c;然后将数据复制到 "远…

05-详解Nacos配置管理中心,配置拉取的方式,热更新,配置共享(优先级)的步骤

Nacos配置管理 新建配置文件 当微服务部署的实例越来越多时,如果需要修改微服务的配置就需要逐个修改配置文件并且还要重启关联的微服务十分繁琐还易出错 项目中的配置文件分为每个项目特有的配置,项目所公用的配置 每个项目特有的配置: 有些项目中需要但有些项目中又不需要…

初学者如何入门 Generative AI 之 Stable Diffusion 与 CLIP :看两篇综述,玩几个应用感受一下先!超多高清大图,沉浸式体验

文章大纲 4种 图片生成 的算法扩散模型的起源Stable DiffusionCLIP参考文献与学习路径A synthography of an astronaut riding a horse created in NightCafe Studio with Stable Diffusion XL (SDXL). Prompt is a photograph of an astronaut riding a horse with weight of …

lenovo联想拯救者Legion R7000P 2020H(82GR)笔记本原厂Windows10系统包

拯救者笔记本电脑原装出厂WIN10系统ISO镜像 链接&#xff1a;https://pan.baidu.com/s/1iPNXELRipKaAIR-yaq5HNg?pwdm27n 提取码&#xff1a;m27n 自带有所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;1…

【网络奇缘系列】计算机网络|数据通信方式|数据传输方式

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 这篇文章是关于计算机网络中数据通信的基础知识点&#xff0c; 从模型&#xff0c;术语再到数据通信方式&#…

Jmeter 请求签名api接口-BeanShell

Jmeter 请求签名api接口-BeanShell 项目签名说明编译扩展jar包jmeter 使用 BeanShell 调用jar包中的签名方法 项目签名说明 有签名算法的api接口本地不好测试&#xff0c;使用BeanShell 扩展jar 包对参数进行签名&#xff0c;接口签名算法使用 sha512Hex 算法。签名的说明如下…

java实现网络聊天

网络聊天实现步骤&#xff08;从功能谈论方法&#xff09;&#xff1a; 客户端&#xff1a; 1.登录面板&#xff1a;注册提醒用户注册格式&#xff0c;登录账号密码不为空&#xff0c;点击登录的时候需要连接服务器端&#xff0c;启动聊天面板。&#xff08;监听用户点击登录…

详细介绍开源固件-TF-A

什么是TF-A&#xff1f; TF-A&#xff08;Trusted Firmware-A&#xff09;是一种用于嵌入式系统的开源固件&#xff0c;而不是Linux的一部分。TF-A主要用于ARM架构的处理器和设备&#xff0c;它提供了一组安全和可信任的软件组件&#xff0c;用于引导和初始化系统。 如下是其…

学习通【劳动通论】2023章节练习题

社会主义核心价值观24个字是&#xff1a;富强、民主、文明、和谐&#xff0c;自由、平等、公正、法治&#xff0c;爱国、敬业、诚信、友善。 1、“富强、民主、文明、和谐”&#xff0c;是我国社会主义现代化国家的建设目标&#xff0c;也是从价值目标层面对社会主义核心价值观…

基于Java Swing泡泡龙游戏(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

uniapp iOS离线打包——运行项目到模拟器报错?

运行项目、打包时报错问题 记录个人在开发过程中遇到的相关问题&#xff0c;后续有时间会不定时更新 文章目录 运行项目、打包时报错问题运行到模拟器报错解决方案 打包报错解决方案 运行到模拟器报错 解决方案 选中项目工程 —> Build Settings 滑动底部 —> User-Defi…

3.DevEco Studio安装鸿蒙手机app本地模拟器

配合Intel CPU启动模拟器 解决措施 打开任务管理器&#xff0c;在“性能”选项&#xff0c;检查CPU虚拟化是否已经启用。如果未启用&#xff0c;需要进入电脑的BIOS中&#xff0c;将CPU的“Intel Virtualization Technology”选项开启。 点击New Emulator 文档中心 解决措施…

048:利用vue-video-player播放m3u8

第048个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

pyqt5使用Designer实现按钮上传图片

pyqt5使用Designer实现按钮上传图片 1、ui界面 2、ui转py代码 其中uploadimg.py代码如下&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from reading ui file uploadimg.ui # # Created by: PyQt5 UI code generator 5.15.4 # # WARNING: Any manua…

【小沐学Python】Python实现TTS文本转语音(speech、pyttsx3、百度AI)

文章目录 1、简介2、Windows语音2.1 简介2.2 安装2.3 代码 3、pyttsx33.1 简介3.2 安装3.3 代码 4、ggts4.1 简介4.2 安装4.3 代码 5、SAPI6、SpeechLib7、百度AI8、百度飞桨结语 1、简介 TTS(Text To Speech) 译为从文本到语音&#xff0c;TTS是人工智能AI的一个模组&#xf…

【unity实战】一个通用的FPS枪支不同武器射击控制脚本

文章目录 前言模型素材文章用到的粒子火光特效射击效果换弹瞄准开枪抖动效果设置显示文本最终代码不同武器射击效果1. 手枪2. 机枪3. 狙击枪4. 霰弹枪5. 加特林 其他感谢完结 前言 实现FPS枪支不同武器效果&#xff0c;比如手枪&#xff0c;喷子&#xff0c;狙击枪&#xff0c…

Dubbo入门直接上手,结合微服务详解

Dubbo 高性能、轻量级的 Java RPC 框架 RPC&#xff1a; Remote Procedure Call 远程过程调用&#xff0c;简单来说就是它允许一个计算机程序通过网络请求调用另一个计算机上的程序&#xff0c;就像本地调用一样。有非常多的协议和技术来都实现了RPC的过程&#xff0c;比如&a…

MySQL数据库,创建和管理表

创建数据库&#xff1a; 方式一&#xff1a;创建数据库 CREATE DATABASE 数据库名&#xff1b;&#xff08;使用的是默认的字符集&#xff09; 方式二&#xff1a;创建数据库并指定字符集 CREATE DATABASE 数据库名 CHARACTER SET 字符集&#xff1b; 方式三&#xff1a;判断数…