Extends
Methods
-
addByBinaryFiles(data, fn)
-
根据二进制文件构建三维热力图
bin文件结构描述:bin文件类似于dem文件结构的一个二维数组,数组元素可以是一个浮点数(标量)或者3个浮点数(向量),按行顺序排列。例如有321*701的bin文件,即一个321x701的行列矩阵,前701个浮点是第0行,再701个浮点是第1行,直至第320行。bin文件渲染后在空间上会对应渲染范围参数。Parameters:
Name Type Description data
object | array HeatMap3D对象或数组,对于每个对象,支持以下属性:
-
id (string) 字符串类型的ID
-
groupId (string) 可选,Group分组
-
userData (string) 可选,用户自定义数据
-
updateTime (number) 更新动画的插值时间,单位:秒,注意:参数仅更新方法update()执行时生效
-
binaryFiles (object) 生成三维热力图的二进制文件信息,bin文件结构描述:bin文件类似于dem文件结构的一个二维数组,数组元素可以是一个浮点数(标量)或者3个浮点数(向量),按行顺序排列。例如有321*701的bin文件,即一个321x701的行列矩阵,前701个浮点是第0行,再701个浮点是第1行,直至第320行。bin文件渲染后在空间上会对应渲染范围参数。
size (array) 纹理分辨率,注意:纹理尺寸不能超过2048,最大值示例:[2048,2048]
files (array) 二进制文件路径数组,示例:["D:\\xxx1.bin","D:\\xxx2.bin","D:\\xxx3.bin"...]
needProject (boolean) 是否需要重投影
left (number) 距左边界
top (number) 距上边界
right (number) 距右边界
bottom (number) 距下边界
minLongitude (number) 最小经度
maxLongitude (number) 最大经度
minLatitude (number) 最小纬度
maxLatitude (number) 最大纬度
-
bbox (array) 三维热力图的包围盒范围,格式:[minX,minY,minZ,maxX,maxY,maxZ],数组元素类型:[任意浮点数]
-
volumeBoxLocation (array) 三维热力图坐标位置:[X,Y,Z],取值示例,数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxRotation (array) 三维热力图坐标旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxSize (array) 三维热力图盒子范围:[长,宽,高],数组元素类型:[任意浮点数], 单位:米
-
brightness (number) 亮度,取值范围:[0~100] ,值等于0则完全透明,值越大越不透明
-
displayMode (number) 显示模式,取值:[0,1,2,3] ,0是体积雾效果, 1是体素效果 , 2是盒子效果,3是贴花效果,注意:0|1是跟全局剖切方法联动的,只有2不跟全局剖切联动需要自己传参clipBox
-
heatValueMode (number) 热力值模式,取值:[0,1,2,3,4,5,6] ,0 : Interp插值(默认值) 1 : Nearest最近 2 : Addition叠加 3 : Minimum最小 4 : Maximum最大 5 : Overwrite覆盖 6 : DoOnce独占
-
heatValueRange (array) 热力值的范围:[min,max],数组元素类型:[任意浮点数]
-
voxelAlphaMode (number) 三维体素块透明模式,取值:[0,1],0 : 使用颜色渐变(默认值) 1 : 使用点,注意:仅离散点构建时生效
-
voxelGridSize (array) 三维体素块网格尺寸,默认使用纹理尺寸,取值示例: [1,1,256]
-
textureSize (number) 纹理尺寸,取值范围:[128~512],默认:128
-
blendMode (number) 各图层之间的混合模式,取值范围:[0,1]
-
textureFilter (number) 是否进行纹理过滤,取值范围:[0,1]
-
colors (object) 三维热力图对象的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效像素点的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
-
addByHeatPoints(data, fn)
-
根据空间离散点和对应热力值构建三维热力图
Parameters:
Name Type Description data
object | array HeatMap3D对象或数组,对于每个对象,支持以下属性:
-
id (string) 字符串类型的ID
-
groupId (string) 可选,Group分组
-
userData (string) 可选,用户自定义数据
-
updateTime (number) 更新动画的插值时间,单位:秒,注意:参数仅更新方法update()执行时生效
-
displayMode (number) 显示模式,取值:[0,1,2,3] ,0是体积雾效果, 1是体素效果 , 2是盒子效果,3是贴花效果,注意:0|1是跟全局剖切方法联动的,只有2不跟全局剖切联动需要自己传参clipBox
-
brightness (number) 亮度,取值范围:[0~100] ,值等于0则完全透明,值越大越不透明
-
indices (array) 离散热力点坐标的索引;数组元素类型:(number);取值示例:[2, 0, 3, 0, 2, 1],注意:仅在voxelShape=2四面体模式下生效
-
voxels (array) 离散热力点的坐标数组,包含热力点坐标、热力值影响半径(或盒子范围)、热力值和不透明度四个属性,结构示例:[{"coordinate": [0,0,0],"radius": 5,"heatValue": 0.5,"alpha": 1}]
coordinate (array) 离散热力点的坐标位置,示例:[x,y,z]
heatValue (array) 热力点对应的热力值,用于匹配colors参数的colorStops数组内颜色
radius (number) 可选,二选一,热力点的半径,当voxelShape=0球体时生效
extent (array) 可选,二选一,热力点的盒子范围,即长方体的长宽高:[xSize,ySize,zSize],voxelShape=1盒子时生效
alpha (number) 热力点不透明度
-
voxelAlphaMode (number) 三维体素块透明模式,取值:[0,1],0 : 使用颜色渐变(默认值) 1 : 使用点,注意:仅离散点构建时生效
-
voxelShape (number) 三维体素块形状,取值:[0,1,2],0 : Sphere球(注意体素设置为球时构建非常耗时) 1 : Box盒子(默认值) 2 : 四面体,注意:仅离散点构建时生效
-
voxelSize (number) 三维体素块尺寸,支持仅传入Voxels和VoxelSize参数,则自动计算Bounds和TextureSize
-
voxelGridSize (array) 三维体素块网格尺寸,默认使用纹理尺寸,取值示例: [1,1,256]
-
textureSize (number) 纹理尺寸,取值范围:[128~512],默认:128
-
denoise (number) 降噪级别,取值范围:[0,1,2,3,4,5],默认值:0 不做降噪;1~5 五级,注意:值越大添加越耗时
-
bbox (array) 三维热力图的包围盒范围,格式:[minX,minY,minZ,maxX,maxY,maxZ],数组元素类型:[任意浮点数]
-
volumeBoxLocation (array) 三维热力图坐标位置:[X,Y,Z],取值示例,数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxRotation (array) 三维热力图坐标旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxSize (array) 三维热力图盒子范围:[长,宽,高],数组元素类型:[任意浮点数], 单位:米
-
heatValueMode (number) 热力值模式,取值:[0,1,2,3,4,5,6] ,0 : Interp插值(默认值) 1 : Nearest最近 2 : Addition叠加 3 : Minimum最小 4 : Maximum最大 5 : Overwrite覆盖 6 : DoOnce独占
-
heatValueRange (array) 热力值的范围:[min,max],数组元素类型:[任意浮点数]
-
colors (object) 三维热力图对象的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效像素点的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
-
addByImages(data, fn)
-
根据16张空间图片构建三维热力图
Parameters:
Name Type Description data
object | array HeatMap3D对象或数组,对于每个对象,支持以下属性:
-
id (string) 字符串类型的ID
-
groupId (string) 可选,Group分组
-
userData (string) 可选,用户自定义数据
-
updateTime (number) 更新动画的插值时间,单位:秒,注意:参数仅更新方法update()执行时生效
-
imagesArray (array) 二选一,16张1024*1024的空间热力图图片的路径,空间位置从低到高,参考示例代码,注意:仅空间图片构建时生效
-
imageFiles (array) 二选一,构成空间热力图图片对象数组,每一个图片对象包含以下属性:
size (array) 图片尺寸
images (array) 图片对象数组,每一个对象包含一下属性:
filePath (string) 图片文件路径
minValue (number) 最小值
maxValue (number) 最大值
-
volumeBoxLocation (array) 三维热力图坐标位置:[X,Y,Z],取值示例,数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxRotation (array) 三维热力图坐标旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值]
-
bbox (array) 三维热力图的包围盒范围,格式:[minX,minY,minZ,maxX,maxY,maxZ],数组元素类型:[任意浮点数]
-
volumeBoxSize (array) 三维热力图盒子范围:[长,宽,高],数组元素类型:[任意浮点数], 单位:米
-
clipBox (array) 三维热力图盒子剖切的bbox范围,注意:仅对displayMode=2盒子模式下生效,取值格式示例:[minX,minY,minZ,maxX,maxY,maxZ],元素取值范围:[0~volumeBoxSize]
-
brightness (number) 亮度,取值范围:[0~100] ,值等于0则完全透明,值越大越不透明
-
displayMode (number) 显示模式,取值范围:[0,1,2,3] ,支持四类效果:0是体积雾效果, 1是体素效果 , 2是盒子效果,3是贴花效果,注意:0|1是跟全局剖切方法联动的,只有2不跟全局剖切联动需要自己传参clipBox
-
colors (object) 三维热力图对象的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效像素点的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
-
addBySparseVoxels(data, fn)
-
根据稀疏体素构建三维热力图
Parameters:
Name Type Description data
object | array HeatMap3D对象或数组,对于每个对象,支持以下属性:
-
id (string) 字符串类型的ID
-
groupId (string) 可选,Group分组
-
userData (string) 可选,用户自定义数据
-
updateTime (number) 更新动画的插值时间,单位:秒,注意:参数仅更新方法update()执行时生效
-
sparseVoxels (object)) 稀疏类型体素构建三维热力对象
voxels (array) 稀疏体素数组
voxel (array) 稀疏体素纹理坐标索引,取值类型:[i,j,k],i、j、k均需要小于体素尺寸size
value (number) 纹理坐标对应的值
data (string) 用户自定义数据
size (array) 稀疏体素的纹理坐标[i,j,k]的最大值,取值示例:[256,256,256],即i、j、k的最大值为256
-
textureFilter (number) 稀疏体素数量少于一定比例时设置为0,数量铺满时取1,取值范围:[0,1]
-
displayMode (number) 显示模式,取值:[0,1,2,3] ,0是体积雾效果, 1是体素效果 , 2是盒子效果,3是贴花效果,注意:0|1是跟全局剖切方法联动的,只有2不跟全局剖切联动需要自己传参clipBox
-
brightness (number) 亮度,取值范围:[0~100] ,值等于0则完全透明,值越大越不透明
-
bbox (array) 三维热力图的包围盒范围,格式:[minX,minY,minZ,maxX,maxY,maxZ],数组元素类型:[任意浮点数]
-
volumeBoxLocation (array) 三维热力图坐标位置:[X,Y,Z],取值示例,数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxRotation (array) 三维热力图坐标旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxSize (array) 三维热力图盒子范围:[长,宽,高],数组元素类型:[任意浮点数], 单位:米
-
voxelAlphaMode (number) 三维体素块透明模式,取值:[0,1],0 : 使用颜色渐变(默认值) 1 : 使用点,注意:仅离散点构建时生效
-
voxelShape (number) 三维体素块形状,取值:[0,1,2],0 : Sphere球(注意体素设置为球时构建非常耗时) 1 : Box盒子(默认值) 2 : 四面体,注意:仅离散点构建时生效
-
heatValueMode (number) 热力值模式,取值:[0,1,2,3,4,5,6] ,0 : Interp插值(默认值) 1 : Nearest最近 2 : Addition叠加 3 : Minimum最小 4 : Maximum最大 5 : Overwrite覆盖 6 : DoOnce独占
-
heatValueRange (array) 热力值的范围:[min,max],数组元素类型:[任意浮点数]
-
colors (object) 三维热力图对象的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效像素点的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值值
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
-
addByVoxels(data, fn)
-
根据纯热力值构建三维热力图
Parameters:
Name Type Description data
object | array HeatMap3D对象或数组,对于每个对象,支持以下属性:
-
id (string) 字符串类型的ID
-
groupId (string) 可选,Group分组
-
userData (string) 可选,用户自定义数据
-
updateTime (number) 更新动画的插值时间,单位:秒,注意:参数仅更新方法update()执行时生效
-
displayMode (number) 显示模式,取值:[0,1,2,3] ,0是体积雾效果, 1是体素效果 , 2是盒子效果,3是贴花效果,注意:0|1是跟全局剖切方法联动的,只有2不跟全局剖切联动需要自己传参clipBox
-
brightness (number) 亮度,取值范围:[0~100] ,值等于0则完全透明,值越大越不透明
-
bbox (array) 三维热力图的包围盒范围,格式:[minX,minY,minZ,maxX,maxY,maxZ],数组元素类型:[任意浮点数]
-
volumeBoxLocation (array) 三维热力图坐标位置:[X,Y,Z],取值示例,数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxRotation (array) 三维热力图坐标旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值]
-
volumeBoxSize (array) 三维热力图盒子范围:[长,宽,高],数组元素类型:[任意浮点数], 单位:米
-
heatValueMode (number) 热力值模式,取值:[0,1,2,3,4,5,6] ,0 : Interp插值(默认值) 1 : Nearest最近 2 : Addition叠加 3 : Minimum最小 4 : Maximum最大 5 : Overwrite覆盖 6 : DoOnce独占
-
heatValueRange (array) 热力值的范围:[min,max],数组元素类型:[任意浮点数]
-
heatValues (object) 构建三维热力图的热力值对象,注意:此参数需要根据纯热力值构建
size (array) 体素尺寸,取值示例:[x, y, z],x*y*z就是包含的热力值数量,即values数组的长度等于x*y*z
values (array) 体素的热力值,数组长度需要等于x*y*z。注意:如果某个体素的值不在heatValueRange范围内则属于无效体素不做渲染。
alphas (array) 可选参数,透明度数组,不传则默认使用colors的透明度
-
colors (object) 三维热力图对象的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效像素点的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
-
addHeatPoints(data, fn)
-
动态往HeatMap3D对象内添加离散热力点,注意:仅支持空间离散点构造方法addByHeatPoints()
Parameters:
Name Type Description data
object | array Voxel对象或对象数组,对于每个对象,支持以下属性:
-
id (string) 字符串类型的ID
-
voxels (array) 离散热力点信息坐标数组,包含热力点坐标、热力值影响半径(或盒子范围)、热力值和不透明度等属性,结构示例:[{"coordinate": [0,0,0],"radius": 5,"heatValue": 0.5,"alpha": 1}]
coordinate (array) 热力点的坐标位置,示例:[x,y,z]
heatValue (array) 热力点对应的热力值
radius (number) 可选,热力点的半径,当voxelShape=0球体时生效
extent (array) 可选,热力点的盒子范围,即长方体的长宽高:[xSize,ySize,zSize],voxelShape=1盒子时生效
alpha (number) 热力点不透明度
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
Example
参数结构示例 [ { "id": "heatmap3d_v1", "voxels": [ { "coordinate": [ -1121, 89, 75 ], "radius": 50, //"extent": [2,2,2], "heatValue": 0.0234818, "alpha": 1 }, { "coordinate": [ -1121, 89, 75 ], "radius": 50, //"extent": [2,2,2], "heatValue": 0.0234818, "alpha": 1 } ] }, { "id": "heatmap3d_v2", "voxels": [ { "coordinate": [ -1121, 89, 75 ], "radius": 50, //"extent": [2,2,2], "heatValue": 0.0234818, "alpha": 1 }, { "coordinate": [ -1121, 89, 75 ], "radius": 50, //"extent": [2,2,2], "heatValue": 0.0234818, "alpha": 1 } ] } ]
-
-
clear(fn)
-
清空场景中所有的HeatMap3D
Parameters:
Name Type Description fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
delete(ids, fn)
-
删除一个或多个HeatMap3D对象
Parameters:
Name Type Description ids
string | array 要删除的HeatMap3D对象的ID或者ID数组(可以删除一个或者多个)
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
focus(ids, distance, flyTime, rotation, fn)
-
自动定位到合适的观察距离
Parameters:
Name Type Description ids
string | array HeatMap3D对象的ID或者ID数组
distance
number 可选参数,观察点距离目标点(被拍摄物体)的距离,取值范围:[0.01~任意正数],如果设置为0或者不设置,系统自动计算
flyTime
number 可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒
rotation
array 可选参数,相机旋转的欧拉角:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:Pitch[-90~90] Yaw[-180~180] Roll[0]
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
get(ids, fn)
-
根据ID获取HeatMap3D的详细信息
Parameters:
Name Type Description ids
string | array 要获取的HeatMap3D对象ID或者ID数组(可以获取一个或者多个)
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
Example
HeatMap3D的详细信息 [{ "id": "heatmap3d", "groupId": "", "userData": "", "imagesArray": [ "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY0.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY1.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY2.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY3.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY4.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY5.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY6.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY7.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY8.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY9.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY10.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY11.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY12.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY13.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY14.png", "D:\\Aircity_workspace\\dev\\SDK\\JS/media/heatmap3d/LAY15.png" ], "volumeBoxLocation": [1057.934937, 2643.727539, 5.702500], "volumeBoxRotation": [0.000000, 0.000000, 0.000000], "volumeBoxSize": [100.000000, 100.000000, 100.000000], "displayMode": 0 }]
-
hide(ids, fn)
-
隐藏HeatMap3D
Parameters:
Name Type Description ids
string | array HeatMap3D对象的ID或者ID数组
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
queryVoxel(id, coordinate, fn)
-
根据ID和坐标位置获取对应HeatMap3D对象包含体素块的详细信息
Parameters:
Name Type Description id
string HeatMap3D对象ID
coordinate
array 坐标位置
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
setDisplayMode(id, displayMode, fn)
-
设置三维热力图的显示模式
Parameters:
Name Type Description id
any HeatMap3D的ID
displayMode
array 显示模式,取值范围:0是VolumeFog,1是InstanceMesh,2是Box
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
setViewportVisible(id, vp, fn)
-
设置HeatMap3D对象在进入多视口状态下视口可见性
Parameters:
Name Type Description id
string HeatMap3D对象ID
vp
Viewport 视口掩码(Viewport位运算)
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
show(ids, fn)
-
显示HeatMap3D
Parameters:
Name Type Description ids
string | array HeatMap3D对象的ID或者ID数组
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
update(data, fn)
-
修改HeatMap3D
Parameters:
Name Type Description data
object | array HeatMap3D对象或数组,参考add方法
fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
-
updateBegin()
-
用于批量多次修改对象的属性
在开始修改之前调用updateBegin,然后可以多次调用setXXX方法,最后调用updateEnd提交修改更新数据
注意:
updateBegin不是异步调用,不需要await,也没有回调函数参数- Inherited From:
- Overrides:
Example
fdapi.xxx.updateBegin(); for (let i = 0; i < 1000; i++) { fdapi.xxx.setColor(i, Color.Yellow); } fdapi.xxx.updateEnd(function () { log('update finished!'); });
-
updateEnd(fn)
-
用于批量多次修改对象的属性,与updateBegin配套使用
注意:
updateEnd是异步调用,可以用回调函数也可以awaitParameters:
Name Type Description fn
function 可选的回调函数,请参考二次开发:异步接口调用方式
- Inherited From:
- Overrides: