Appearance
向量场图层操作
目录
1. 添加向量场图层 流
引入版本:4.2 起支持
功能描述
在场景中添加向量场图层。
调用方法
JavaScript
let jsonData = {
id: 'vectorField',
name: '风场图',
coordType: 0,
coordTypeZ: 0,
minRange: [0, -80],
maxRange: [360, 90],
minZ: 0,
maxZ: 7500,
visible: true,
spawnRate: 5000,
particleType: 1,
lifeTime: 5,
spriteSize: 5,
trailBrightness: 0.4,
trailSpawnRate: 10,
trailLifetime: 5,
gridSizeX: 128,
gridSizeY: 128,
gridSizeZ: 36,
valueStep: [0, 0.05, 0.1, 0.4, 0.5, 1.0],
stepColor: ["#FF0000", "#990000", "#993300", "#336600", "#009900", "#00FF00"]
fieldStrength:100,
vectorFieldFilePath: './settings/WindFields/GlobalOcean_1.FGA',
pointDataId: '',
data:[
{
id:0,
vector: { x:4.9215174, y:4.7512836, z:0 }
},
{
id:1,
vector: { x:44.3532, y:.896204, z:0 }
}
},
// ... 省略
{
id:589825,
vector: { x:42.0799236, y:5.4758854, z:0 }
},
{
id:589826,
vector: { x:41.2274456, y:5.6208057, z:0 }
}
],
tags:['tag1', 'tag2', 'tag3'],
}
appInstance.uniCall('addVectorFieldLayer', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 图层 id |
| name | String | 图层名称,支持为图层自定义名称 |
| coordType | Number | XY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点 |
| coordTypeZ | Number | Z 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米) |
| minRange | Array | 向量场数据经纬度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| maxRange | Array | 向量场数据经纬度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| minZ | Number | 向量场数据高度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| maxZ | Number | 向量场数据高度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| visible | Boolean | 添加当前图层时默认显示还是隐藏 |
| spawnRate | Number | 每秒粒子生成个数 |
| particleType | Number | 粒子样式类型,0:尾迹粒子,1:箭头粒子 |
| lifeTime | Number | 粒子生命周期,单位:秒 |
| spriteSize | Number | 粒子尺寸,UE Niagara 粒子尺寸单位 |
| trailBrightness | Number | 当粒子样式为尾迹粒子时,尾迹的亮度系数 |
| trailSpawnRate | Number | 当粒子样式为尾迹粒子时,每个粒子每秒生成尾迹粒子的个数。决定了尾迹的平滑程度。数值越大,尾迹越平滑,但是性能消耗越大。最大值:100 |
| trailLifetime | Number | 当粒子样式为尾迹粒子时,粒子的尾迹粒子生命周期。决定了尾迹的长度。数值越大,尾迹越长,但是性能消耗越大,单位:秒 |
| gridSizeX | Number | 在指定经度范围内划分格子的数量 ;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| gridSizeY | Number | 在指定纬度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| gridSizeZ | Number | 在指定高度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| valueStep | Array<Number> | 颜色渐变分段,0 代表向量场中最小速度,1 代表向量场中最大速度 |
| stepColor | Array<String> | 颜色渐变分段,根据 valueStep 分段后段渐变的颜色 |
| fieldStrength | Number | 数据中向量强度系数 |
| vectorFieldFilePath | String | 向量场文件路径,目前只支持相对于场景 Content 目录下的地址,如果此地址不为空,则下方的 data 不起作用 |
| pointDataId | String | 对应数据服务器上点数据对象,如果找到 pointDataId,则下方的 data 不起作用 |
| data | Array | 向量场数据 ;元素数量必须等于 gridSizeX * gridSizeY * gridSizeZ ; |
| data[0].id | Number | 数据填充顺序按照 Z(高度)→Y(纬度)→X(经度) 的顺序,且每个维度均按坐标值从小到大遍历 |
| data[0].vector | String | Z(高度)→Y(纬度)→X(经度) |
| data[0].vector.x | Number | 经度 |
| data[0].vector.y | Number | 纬度 |
| data[0].vector.z | Number | 高度 |
| tags | Array | 用户自定标签数组,用于保存用户的扩展数据,或者可以控制显隐 |
| stepColor[] | String | 分段颜色(HEX) |
| data[].id | Number | 数据填充顺序按照 Z(高度)→Y(纬度)→X(经度) 的顺序,且每个维度均按坐标值从小到大遍历 |
| data[].vector | Object | Z(高度)→Y(纬度)→X(经度) |
| data[].vector.x | Number | X 分量 |
| data[].vector.y | Number | Y 分量 |
| data[].vector.z | Number | Z 分量 |
回调数据
JSON
{
"result": 1,
"message": "成功。"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |
2. 更新向量场图层数据 流
引入版本:4.2 起支持
功能描述
更新向量场图层数据。
调用方法
JavaScript
let jsonData = {
id: 'vectorField',
name: '风场图',
coordType: 0,
coordTypeZ: 0,
minRange: [113.4, 35.975],
maxRange: [119.9, 42.7],
minZ: 0,
maxZ: 990,
gridSizeX: 128,
gridSizeY: 128,
gridSizeZ: 36,
vectorFieldFilePath: './settings/WindFields/CDL_L3B_Wind_Field_202502040010.json.fga',
data: [],
tags: ['tag1', 'tag2', 'tag3'],
}
appInstance.uniCall('updateVectorFieldLayerCoord', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 图层 id |
| name | String | 图层名称,支持为图层自定义名称 |
| coordType | Number | XY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点 |
| coordTypeZ | Number | Z 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米) |
| minRange | Array | 向量场数据经纬度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| maxRange | Array | 向量场数据经纬度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| minZ | Number | 向量场数据高度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| maxZ | Number | 向量场数据高度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| gridSizeX | Number | 在指定经度范围内划分格子的数量 ;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| gridSizeY | Number | 在指定纬度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| gridSizeZ | Number | 在指定高度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置 |
| vectorFieldFilePath | String | 向量场文件路径,目前只支持相对于场景 Content 目录下的地址,如果此地址不为空,则下方的 data 不起作用 |
| data | Array | 向量场数据 ;元素数量必须等于 gridSizeX * gridSizeY * gridSizeZ ; |
| tags | Array<String> | 用户自定标签数组,用于保存用户的扩展数据,或者可以控制显隐 |
| fieldStrength | Number | 向量强度系数(UE 当前实现对本指令强校验此字段,文档参数表未列,契约缺口已报引擎侧修复) |
| data[].id | Number | 数据点序号 |
| data[].vector | Object | 向量三分量 |
| data[].vector.x | Number | X 分量 |
| data[].vector.y | Number | Y 分量 |
| data[].vector.z | Number | Z 分量 |
回调数据
JSON
{
"result": 1,
"message": "成功。"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |
3. 更新向量场图层样式 流
引入版本:4.2 起支持
功能描述
更新向量场图层样式。
调用方法
JavaScript
let jsonData = {
id: 'vectorField',
spawnRate: 50000,
lifeTime: 10,
particleType: 1,
spriteSize: 1000,
fieldStrength: 5000,
valueStep: [0, 0.05, 0.1, 0.4, 0.5, 1.0],
stepColor: ['#FF0000', '#990000', '#993300', '#336600', '#009900', '#00FF00'],
};
appInstance.uniCall('updateVectorFieldLayerStyle', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 图层 id |
| spawnRate | Number | 每秒粒子生成速度 |
| lifeTime | Number | 粒子生命周期,单位:秒 |
| particleType | Number | 粒子样式类型,0:尾迹粒子,1:箭头粒子 |
| spriteSize | Number | 粒子尺寸,UE Niagara 粒子尺寸单位 |
| fieldStrength | Number | 数据中向量强度系数 |
| valueStep | Array<Number> | 颜色渐变分段,0 代表向量场中最小速度,1 代表向量场中最大速度 |
| stepColor | Array<String> | 颜色渐变分段,根据 valueStep 分段后段渐变的颜色 |
| stepColor[] | String | 分段颜色(HEX) |
回调数据
JSON
{
"result": 1,
"message": "成功。"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |