SuperMap Hi-Fi 3D SDK for Unreal 使用蓝图接口加载多源数据

目录

一、前言

二、支持添加的数据类型

三、节点说明

[1. 添加Layers的函数节点](#1. 添加Layers的函数节点)

[2. SuperMap_LayerInfo 结构体节点](#2. SuperMap_LayerInfo 结构体节点)

四、关卡蓝图示例

[1. 本地数据](#1. 本地数据)

[​2. SuperMap iServer发布的在线服务](#2. SuperMap iServer发布的在线服务)

[3. 公共服务](#3. 公共服务)

五、说明

[1. 参数填写小tip](#1. 参数填写小tip)

[2. 官网示例](#2. 官网示例)


一、前言

在基于插件蓝图接口进行开发时,由于没有系统的开发文档,如何加载各类数据是一个普遍存在的疑问。本文旨在解决这一问题,详细阐述其操作流程与实现方法。

本文以12.0.1版本的SuperMap Hi-Fi 3D SDK for Unreal产品(以下简称UE插件)为例,在UE5.3项目中使用关卡蓝图方式加载在线服务,仅供参考。

二、支持添加的数据类型

目前UE插件支持加载GIS数据,包括三种方式:加载本地数据、加载在线服务、加载公共服务,详细说明如下:

|--------------------------|-----------------------------------------------------------------------|------------------|
| 数据类型 | 说明 | 蓝图接口 |
| 本地数据 | 支持的三维瓦片数据类型包括: 三维影像瓦片数据(*sci3d)、三维地形瓦片数据(*.sct)、三维模型瓦片数据(*.scp) | Add Local Layers |
| 本地数据 | 支持通过*.udbx/*.udb格式的数据源添加数据集,支持的数据集类型包括: 三维点数据集、三维线数据集、三维面数据集、模型数据集。 | Add Local Layers |
| 在线服务(SuperMap iServer发布) | 三维模型缓存 (*.scp) 发布的三维服务 | Add url Layers |
| 在线服务(SuperMap iServer发布) | 地形缓存(*.sct)发布的三维服务 | Add url Layers |
| 在线服务(SuperMap iServer发布) | 影像缓存(*.sci3d)发布的三维服务 | Add url Layers |
| 在线服务(SuperMap iServer发布) | 其他Rest服务 | Add url Layers |
| 在线服务(SuperMap iServer发布) | Map服务 | Add url Layers |
| 公共服务 | SuperMap Terrain | Public Size |
| 公共服务 | STK地形 | Add url Layers |
| 公共服务 | 天地图 | Add WMTS Map |
| 公共服务 | Bing Maps | Add WMTS Map |
| 公共服务 | WMS | Add WMTS Map |
| 公共服务 | WMTS | Add WMTS Map |

三、节点说明

1. 添加Layers的函数节点

针对上述三种数据类型,在UE中使用蓝图接口进行数据加载时,涉及到3个蓝图接口:Add Local Layers 函数(本地数据)、Add url Layers 函数(在线服务、STK地形)以及Add WMTS Map 函数(天地图、Bing Maps、WMS、WMTS),参数说明如下:

|------------|---|---|
| 参数 | 说明 ||
| Target | Super Map Main Actor 对象引用函数 在 "Super Map Main" 类型的 Actor(地图主组件)中 ||
| Str Layers | Super Map Layer Info结构 需连接 "SuperMap_LayerInfo" 结构体(配置图层的名称、路径、可见性等信息) ||

2. SuperMap_LayerInfo 结构体节点

|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 参数 | 说明 |
| M Str Name | 图层数据名称 |
| M Str Path | 图层数据路径/服务地址 |
| M B Visibility | 是否可见 |
| M Str Dataset Name | 数据集名称或者xml关键字 |
| M Str Data Name | iserver、本地数据真是名称(在重名情况下,此名称为真实名称,M Str Name为"名称#Num") |
| M B Marker Layer | 图层是否用于地形纹理蒙版 |
| MN Type | 图层类型(需填整数类型值): 0:本地数据 1:SuperMap iServer发布的在线服务 2:公共服务 |
| M N Layer Type | 服务类型(需填整数类型值) 一、图层类型为SuperMap iServer发布的在线服务时: 0:三维模型缓存(*.scp) 1:地形缓存(*.sct) 2:影像缓存(*.sci3d) 3:其他Rest服务 4:Map服务 二、图层类型为公共服务时: 0:SuperMap Terrain 1:STK地形 2:天地图 3:Bing Maps |
| M Str User Name | 用户名(服务类型为Bing Maps时填写) |
| M Str Pass Word | 密码(服务类型为Bing Maps时填写) |
| M lmage Type | 图片类型(服务类型为天地图时填写) |
| OM DPI | DPI(服务类型为天地图时填写) |
| M Key | 密钥(服务类型为天地图时填写) |

四、关卡蓝图示例

使用 "Super Map Main" 类(地图主组件),构造一个 "SuperMap_LayerInfo" 结构体(配置图层的名称、路径、可见性等信息),最后执行添加图层的操作即可。完整关卡蓝图如下:

1. 本地数据

以加载三维模型缓存(*.scp)为例,使用到的函数为:Add Local Layers;SuperMap_LayerInfo 结构体需要填写的参数为:M Str Name、M Str Path、M B Visibility、MN Type。

注:M Str Path 需要填写到.scp,反斜杠,例如:E:/OSGB/Config30/Combine.scp

2. SuperMap iServer发布的在线服务

以加载Map地图为例,示例服务:http://www.supermapol.com/realspace/services/map-World/rest/maps/World_Google

使用到的函数为:Add url Layers; SuperMap_LayerInfo 结构体需要填写的参数为:M Str Name、M Str Path、M B Visibility、M Str Data Name、MN Type、M N Layer Type。

3. 公共服务

以加载天地图服务为例,使用到的函数为:Add url Layers; SuperMap_LayerInfo 结构体需要填写的参数为:M Str Name、M B Visibility、MN Type、M N Layer Type、M Str User Name、M lmage Type、OM DPI、M Key。

注:服务地址填在 M Str User Name 中,后续产品更新会在本博客同步。

五、说明

1. 参数填写小tip

由于数据种类比较多,不确定需要填写哪些参数时,可以通过SuperMap编辑器控件加载GIS数据,填写参数后选择大纲找到SuperMap_MainActor,在细节的Super Map Main Actor参数中会增加一个数组,就是添加该类型数据需要填写的参数。

2. 官网示例

添加数据的demo可以参考:内容管理器中All\Plugins\SuperMap内容\BluePrints\SuperMapUI\MainMenuUI\AddLayerUI

相关推荐
NIKITAshao5 小时前
Unity URP Volume组件详解(笔记)
unity·游戏引擎
weixin_4239950013 小时前
unity 处理图片:截图,下载,保存
java·unity·游戏引擎
呆呆敲代码的小Y17 小时前
【Unity实战篇】| 游戏轮播图效果,多种实现思路及完整教程
游戏·unity·游戏引擎·实战·游戏开发·轮播图·u3d
妙为19 小时前
Unreal Engine5报错:Expected WarriorDebugHelper.h to be first header included.
ue5·虚幻·编译错误
小南家的青蛙19 小时前
O3DE社区发布2510.1版本
游戏引擎·图形引擎
示申○言舌19 小时前
Unity高性能参数差异化URP Shader圆角圆环UI进度条
ui·unity·游戏引擎·圆环进度条·参数差异化·材质参数独立·圆角圆环
一只一只1 天前
Unity之协程
unity·游戏引擎·协程·coroutine·startcoroutine
Zhichao_971 天前
【UE5.3 C++】ARPG游戏 04-角色脚部贴合地形
游戏·ue5
zhangzhangkeji1 天前
UE5 C++(2):保存 vs2022 文本时采用 UTF 编码,以解决到 UE 里的乱码问题,高级保存选项
ue5
AI视觉网奇1 天前
audio2face mh_arkit_mapping_pose_A2F 不兼容
笔记·ue5