Skip to content

向量场图层操作 ​

目录 ​

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);
});

参数描述 ​

属性类型说明
idString图层 id
nameString图层名称,支持为图层自定义名称
coordTypeNumberXY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点
coordTypeZNumberZ 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
minRangeArray向量场数据经纬度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置
maxRangeArray向量场数据经纬度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置
minZNumber向量场数据高度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置
maxZNumber向量场数据高度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置
visibleBoolean添加当前图层时默认显示还是隐藏
spawnRateNumber每秒粒子生成个数
particleTypeNumber粒子样式类型,0:尾迹粒子,1:箭头粒子
lifeTimeNumber粒子生命周期,单位:秒
spriteSizeNumber粒子尺寸,UE Niagara 粒子尺寸单位
trailBrightnessNumber当粒子样式为尾迹粒子时,尾迹的亮度系数
trailSpawnRateNumber当粒子样式为尾迹粒子时,每个粒子每秒生成尾迹粒子的个数。决定了尾迹的平滑程度。数值越大,尾迹越平滑,但是性能消耗越大。最大值:100
trailLifetimeNumber当粒子样式为尾迹粒子时,粒子的尾迹粒子生命周期。决定了尾迹的长度。数值越大,尾迹越长,但是性能消耗越大,单位:秒
gridSizeXNumber在指定经度范围内划分格子的数量 ;如果是通过文件传入数据,从文件中读取,此处不用设置
gridSizeYNumber在指定纬度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置
gridSizeZNumber在指定高度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置
valueStepArray<Number>颜色渐变分段,0 代表向量场中最小速度,1 代表向量场中最大速度
stepColorArray<String>颜色渐变分段,根据 valueStep 分段后段渐变的颜色
fieldStrengthNumber数据中向量强度系数
vectorFieldFilePathString向量场文件路径,目前只支持相对于场景 Content 目录下的地址,如果此地址不为空,则下方的 data 不起作用
pointDataIdString对应数据服务器上点数据对象,如果找到 pointDataId,则下方的 data 不起作用
dataArray向量场数据 ;元素数量必须等于 gridSizeX * gridSizeY * gridSizeZ ;
data[0].idNumber数据填充顺序按照 Z(高度)→Y(纬度)→X(经度) 的顺序,且每个维度均按坐标值从小到大遍历
data[0].vectorStringZ(高度)→Y(纬度)→X(经度)
data[0].vector.xNumber经度
data[0].vector.yNumber纬度
data[0].vector.zNumber高度
tagsArray用户自定标签数组,用于保存用户的扩展数据,或者可以控制显隐
stepColor[]String分段颜色(HEX)
data[].idNumber数据填充顺序按照 Z(高度)→Y(纬度)→X(经度) 的顺序,且每个维度均按坐标值从小到大遍历
data[].vectorObjectZ(高度)→Y(纬度)→X(经度)
data[].vector.xNumberX 分量
data[].vector.yNumberY 分量
data[].vector.zNumberZ 分量

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

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);
});

参数描述 ​

属性类型说明
idString图层 id
nameString图层名称,支持为图层自定义名称
coordTypeNumberXY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点
coordTypeZNumberZ 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
minRangeArray向量场数据经纬度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置
maxRangeArray向量场数据经纬度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置
minZNumber向量场数据高度范围最小值;如果是通过文件传入数据,从文件中读取,此处不用设置
maxZNumber向量场数据高度范围最大值;如果是通过文件传入数据,从文件中读取,此处不用设置
gridSizeXNumber在指定经度范围内划分格子的数量 ;如果是通过文件传入数据,从文件中读取,此处不用设置
gridSizeYNumber在指定纬度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置
gridSizeZNumber在指定高度范围内划分格子的数量;如果是通过文件传入数据,从文件中读取,此处不用设置
vectorFieldFilePathString向量场文件路径,目前只支持相对于场景 Content 目录下的地址,如果此地址不为空,则下方的 data 不起作用
dataArray向量场数据 ;元素数量必须等于 gridSizeX * gridSizeY * gridSizeZ ;
tagsArray<String>用户自定标签数组,用于保存用户的扩展数据,或者可以控制显隐
fieldStrengthNumber向量强度系数(UE 当前实现对本指令强校验此字段,文档参数表未列,契约缺口已报引擎侧修复)
data[].idNumber数据点序号
data[].vectorObject向量三分量
data[].vector.xNumberX 分量
data[].vector.yNumberY 分量
data[].vector.zNumberZ 分量

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

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);
});

参数描述 ​

属性类型说明
idString图层 id
spawnRateNumber每秒粒子生成速度
lifeTimeNumber粒子生命周期,单位:秒
particleTypeNumber粒子样式类型,0:尾迹粒子,1:箭头粒子
spriteSizeNumber粒子尺寸,UE Niagara 粒子尺寸单位
fieldStrengthNumber数据中向量强度系数
valueStepArray<Number>颜色渐变分段,0 代表向量场中最小速度,1 代表向量场中最大速度
stepColorArray<String>颜色渐变分段,根据 valueStep 分段后段渐变的颜色
stepColor[]String分段颜色(HEX)

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录