news 2026/4/15 15:32:42

SuperMap Hi-Fi 3D SDK for Unreal 读取矢量面进行多区域地形开挖

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SuperMap Hi-Fi 3D SDK for Unreal 读取矢量面进行多区域地形开挖

目录

一、前言

二、创建蓝图接口

1.头文件中声明蓝图接口

2.读取矢量面相关代码

三、关卡蓝图示例


一、前言

目前产品已经支持多区域开挖的能力,在实际开发中如何使用已有的矢量面数据进行多区域开挖呢,比如面数据集、*.shp矢量数据、*.kml矢量数据等,本文将以面数据集为例,详细介绍下如何操作。

本文以12.0.1版本的SuperMap Hi-Fi 3D SDK for Unreal产品(以下简称UE插件)为例,在UE5.3项目中使用,仅供参考。

二、创建蓝图接口

创建一个蓝图接口,实现从矢量面数据集中读取多个面区域,并将其作为开挖区域应用到地形开挖分析中。

1.头文件中声明蓝图接口

在 SuperMap_ExcavationInstance.h 头文件中声明蓝图接口

2.读取矢量面相关代码

在 SuperMap_ExcavationInstance.cpp文件中添加读取矢量面相关代码,实现思路:

(1)解析数据源信息,打开SuperMap数据源文件,查询指定数据集中的三维区域几何数据;

(2)将查询到的几何数据转换为三维区域对象(GeoRegion3D)

(3)将三维区域添加到场景的全局图像中作为挖方区域(仅在开启地形图层模式时执行)

void ASuperMap_ExcavationInstance::Test() { TArray<Geometry*> arrGeometry; FString strName = TEXT("NewRegion3D@D:/DataSource.udbx"); FString leftS, rightS; strName.Split("@", &leftS, &rightS); DataSource dataSource = SuperMapSDK::UnrealEngine::Data::DataSource(); Gamebool result = dataSource.Open(rightS); if (result) { Dataset* pDataset = dataSource.GetDataset(leftS); if (pDataset != NULL) { arrGeometry = pDataset->Query(); } dataSource.Close(); } for (int i = 0; i < arrGeometry.Num(); i++) { GeoRegion3D* pGeoRegion3D = (GeoRegion3D*)arrGeometry[i]; if (m_bIsTerrainLayer) { FString strTag = FString::Printf(TEXT("TerrainExcavation_%d"), i); GlobalImage* pGlobalImage = RealspaceView::GetSingleton()->GetSceneControl()->GetScene()->GetGlobalImage(); pGlobalImage->AddExcavationRegion(pGeoRegion3D, strTag); } } }

三、关卡蓝图示例

BuildExcavation 函数:

参数说明
Target

Super Map Excavation Instance 对象引用函数

Excavation是否开挖

SelectLayer 函数:

参数说明
Target

Super Map Excavation Instance 对象引用函数

str Layer Name开挖图层名
Is Select

是否选择图层

开挖效果:

如需添加开挖贴图可以添加贴图蓝图接口:SetSideTexture(侧面纹理)、SetTopTexture(底面纹理)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 18:20:09

Docker健康检查你真的会用吗?(90%开发者忽略的配置陷阱)

第一章&#xff1a;Docker健康检查的核心价值与常见误区在容器化部署日益普及的今天&#xff0c;确保服务的持续可用性成为运维的关键目标。Docker健康检查&#xff08;HEALTHCHECK&#xff09;机制为容器运行状态提供了主动探测能力&#xff0c;使系统能够识别应用是否真正处于…

作者头像 李华
网站建设 2026/3/24 0:56:35

揭秘Docker运行时安全漏洞:eBPF如何实现零信任部署?

第一章&#xff1a;揭秘Docker运行时安全漏洞的本质Docker作为容器化技术的核心&#xff0c;其运行时环境的安全性直接影响整个系统的稳定性。然而&#xff0c;在默认配置下&#xff0c;Docker可能暴露潜在攻击面&#xff0c;导致容器逃逸、权限提升或敏感数据泄露等严重后果。…

作者头像 李华
网站建设 2026/4/13 7:06:39

Docker健康检查配置详解:5个关键步骤实现零宕机部署

第一章&#xff1a;Docker健康检查的核心价值与应用场景在容器化部署日益普及的今天&#xff0c;确保服务的持续可用性成为运维的关键挑战。Docker 健康检查&#xff08;Health Check&#xff09;机制提供了一种标准化方式&#xff0c;用于判断容器内应用是否真正处于可服务状态…

作者头像 李华
网站建设 2026/4/11 8:14:50

系统提示词输入框在哪里?图文标注教你快速定位

系统提示词输入框在哪里&#xff1f;图文标注教你快速定位 在当前大语言模型广泛应用于数学推导与编程解题的背景下&#xff0c;越来越多开发者和学生开始关注轻量级专用模型的实际价值。相比动辄数百亿参数的通用大模型&#xff0c;像微博开源的 VibeThinker-1.5B-APP 这类聚焦…

作者头像 李华
网站建设 2026/4/10 3:52:40

3种高效方案实现Dify与Amplitude数据联动导出(附代码模板)

第一章&#xff1a;Dify与Amplitude数据联动导出的核心价值将Dify平台的AI工作流能力与Amplitude的用户行为分析系统进行数据联动&#xff0c;能够显著提升产品迭代效率与用户体验优化精度。通过打通两者之间的数据链路&#xff0c;企业不仅可以追踪AI驱动功能的实际使用效果&a…

作者头像 李华
网站建设 2026/3/23 14:31:21

Dify 1.11.1日志分析实战(一线运维团队内部资料流出)

第一章&#xff1a;Dify 1.11.1 日志分析概述在 Dify 1.11.1 版本中&#xff0c;日志系统经过优化&#xff0c;提供了更清晰的运行时行为追踪能力&#xff0c;便于开发与运维人员快速定位问题。日志内容涵盖 API 请求、工作流执行、模型调用及系统异常等关键事件&#xff0c;支…

作者头像 李华