目录
[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
