SuperMap Hi-Fi 3D SDK for Unreal 使用蓝图接口加载多源数据
目录
一、前言
二、支持添加的数据类型
三、节点说明
1. 添加Layers的函数节点
2. SuperMap_LayerInfo 结构体节点
四、关卡蓝图示例
1. 本地数据
2. SuperMap iServer发布的在线服务
3. 公共服务
五、说明
1. 参数填写小tip
2. 官网示例
一、前言
在基于插件蓝图接口进行开发时,由于没有系统的开发文档,如何加载各类数据是一个普遍存在的疑问。本文旨在解决这一问题,详细阐述其操作流程与实现方法。
本文以12.0.1版本的SuperMap Hi-Fi 3D SDK for Unreal产品(以下简称UE插件)为例,在UE5.3项目中使用关卡蓝图方式加载在线服务,仅供参考。
二、支持添加的数据类型
目前UE插件支持加载GIS数据,包括三种方式:加载本地数据、加载在线服务、加载公共服务,详细说明如下:
| 数据类型 | 说明 | 蓝图接口 |
| 本地数据 | 支持的三维瓦片数据类型包括: 三维影像瓦片数据(*sci3d)、三维地形瓦片数据(*.sct)、三维模型瓦片数据(*.scp) | Add Local Layers |
| 支持通过*.udbx/*.udb格式的数据源添加数据集,支持的数据集类型包括: 三维点数据集、三维线数据集、三维面数据集、模型数据集。 | ||
| 在线服务(SuperMap iServer发布) | 三维模型缓存 (*.scp) 发布的三维服务 | Add url Layers |
| 地形缓存(*.sct)发布的三维服务 | ||
| 影像缓存(*.sci3d)发布的三维服务 | ||
| 其他Rest服务 | ||
| Map服务 | ||
| 公共服务 | SuperMap Terrain | Public Size |
| STK地形 | Add url Layers | |
| 天地图 | Add WMTS Map | |
| Bing Maps | ||
| WMS | ||
| WMTS |
三、节点说明
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

