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

相关推荐
EQ-雪梨蛋花汤9 小时前
【MRTK3踩坑记录】Unity 2022 中 MRTK3 Input Simulator 无法使用 WASD 控制相机的完整排查记录
数码相机·unity·游戏引擎
星夜泊客20 小时前
Unity 游戏开发中的防御性编程与空值处理实践
unity·设计模式·游戏引擎
mit6.8241 天前
[无人机sdk] Open Protocol | 协议包构造&验证
游戏引擎·无人机·cocos2d
zhangzhangkeji1 天前
cesium126,230331,Visualize Per-Feature Metadata - 1:官方教程
ue5
tealcwu1 天前
【Unity踩坑】Unity测试用例命名空间错误解决方案
unity·游戏引擎·测试用例
zhangzhangkeji1 天前
cesium126,230316,根据经纬度动态生成物体:主要使用了角色的 tag 属性,地球锚点也是有 tag 属性的
ue5
AA陈超1 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-28 构建属性菜单小部件控制器
c++·游戏·ue5·游戏引擎·虚幻
地狱为王1 天前
Unity使用PP-MattingV2实现人像分割
unity·游戏引擎
zhangzhangkeji1 天前
UE5 材质-17:水材质系列一 ,panner 平移节点,
ue5·材质