适用场景:安装了「FineVis数据可视化」插件的用户,可参考本文了解 FineVis 的相关功能。
版本
报表服务器版本 | 插件版本 | 功能变动 |
---|---|---|
11.0 | V1.0.0 | 最低版本要求 |
11.0.16 | V1.18.1 | 新增三维组件漫游动画相关接口: getRoamAnimations 、playRoamAnimations 、updateRoamAnimationAction |
11.0.22 | V2.10.0 | 新增三维组件模型动画接口:getAnimationByName |
查看历史版本更新 | ||||||||||||||||||
|
getDataLayers
方法 | getDataLayers() | 获取三维组件所有的数据图层 |
---|---|---|
参数 | - | - |
返回值 | DataLayer[] | interface DataLayer { /** * 图层是否显示 */ visible: boolean; /** * 设置图层显示或隐藏 */ setVisible: (visible: boolean) => void; } |
示例 | 获取某个三维组件的全部数据图层:
| |
应用示例 | ||
移动端 | 不支持移动端 |
getDataLayerByName
方法 | getDataLayerByName() | 获取某个三维组件的某个具体数据图层 |
---|---|---|
参数 | name:string | 数据图层名称,字符串 |
返回值 | DataLayer | interface DataLayer { /** * 当前图层是否显示 */ visible: boolean; /** * 设置当前图层显示或隐藏 */ setVisible: (visible: boolean) => void; } |
示例 | 获取某个三维组件的「图层1」数据图层:
| |
应用示例 | ||
移动端 | 不支持移动端 |
animateSceneTime
方法 | animateSceneTime( { from:number, to:number, duration:number, }) | 设置自定义模型组件的场景时间动态变化 注:仅支持 三维自定义场景组件 |
---|---|---|
参数 | from:number to:number duration:number | from:场景变化的开始时间,整数,最小为 0 ,无上限 to:场景变化的结束时间,整数,必须大于 from duration:场景完成变化的时长,单位 ms |
返回值 | - | - |
示例 | 自定义模型从第一天的 14:00 开始到 第二天的 14:00 结束,变化时长为 3 秒:
在上述场景的基础上,开启循环变化: 注:暂无停止场景时间变化接口。
| |
应用示例 | ||
移动端 | 不支持移动端 |
getMeshByName
方法 | getMeshByName(name) | 获取三维组件中的自定义模型对象 |
---|---|---|
参数 | name:string | 模型mesh对象名称 |
返回值 | Object | name: 模型mesh对象名称 visible: 可见性 scaling: 缩放比例 rotation: 旋转角度 position: 位置 focus: 聚焦模型位置 |
示例 | 示例:获取某个模型对象的缩放比例
| |
应用示例 | - | |
移动端 | 不支持移动端 |
注:下列所述 setVisible 、setScaling 、setRotation 、setPosition 、focus 接口均需在获取模型对象之后使用。
setVisible
方法 | setVisible(visible:boolean) | 设置模型对象是否可见 注:若父层级模型对象隐藏,设置子层级模型对象显示不生效 |
---|---|---|
参数 | visible:boolean | 是否可见,布尔型
|
返回值 | void | viod |
示例 | 示例:设置某个三维组件中某个模型对象不可见
| |
应用示例 | - | |
移动端 | 不支持移动端 |
setScaling
方法 | setScaling(NumberArray3) | 设置模型对象的缩放比例 |
---|---|---|
参数 | NumberArray3 | 缩放比例的值:[X,Y,Z] |
返回值 | void | viod |
示例 | 示例:设置某个三维组件中某个模型对象的缩放比例
| |
应用示例 | - | |
移动端 | 不支持移动端 |
setRotation
方法 | setRotation(NumberArray3) | 设置模型对象的旋转角度 |
---|---|---|
参数 | NumberArray3 | 旋转角度的值:[X,Y,Z] |
返回值 | void | viod |
示例 | 示例:设置某个三维组件中某个模型对象的旋转角度
| |
应用示例 | - | |
移动端 | 不支持移动端 |
setPosition
方法 | setPosition(NumberArray3) | 设置模型对象的位置 |
---|---|---|
参数 | NumberArray3 | 位置的值:[X,Y,Z] |
返回值 | void | viod |
示例 | 示例:设置某个三维组件中某个模型对象的位置
| |
应用示例 | - | |
移动端 | 不支持移动端 |
focus
方法 | focus(options) | 设置模型对象快速聚焦 V1.15.0 及之后版本支持控制镜头的距离、中心点、角度等参数 |
---|---|---|
参数 | options: { target: "top" | "bottom" | "left" | "right" | "front" | "back" | "center"; targetpos: (value: NumberArray3) => NumberArray3; viewRay: (value: NumberArray3) => NumberArray3; distance: (value: number) => number; } | 1)target:相机聚焦到模型上的位置(模型对象的六个面中心和体中心),默认为 top 2)targetpos:在 focus 基础上微调聚焦中心点的坐标 3)viewRay:改变视线 注:需满足相机视角「垂直角度」的角度范围 默认实现方向取决于 target ,例如:
4)distance:改变相机与模型的距离 注:需满足相机视角「缩放设置」的距离范围 默认距离取决于 target 面的大小,若 target 为 'center' ,则取决于模型对象整体的大小 |
返回值 | void | viod |
示例 | 示例1:
示例2:
| |
应用示例 | JS实现自定义模型视角聚焦 | |
移动端 | 不支持移动端 |
refreshData
方法 | refreshData() | 刷新三维组件数据,仅数据更新,组件整体不更新 |
---|---|---|
参数 | {para:"para"} | 参数名称:参数值 |
返回值 | - | - |
示例 | 示例1:点击刷新「自定义模型」组件的数据并传参:
注:传递多个参数时,写法如下
示例2:给模板添加「页面加载结束事件」,使三维组件定时刷新数据:
| |
应用示例 | ||
移动端 | 不支持移动端 |
subscribeMarkerData
方法 | subscribeMarkerData((data, observer)) | 订阅监听三维组件数据图层中的数据更新:当数据图层中的数据更新,或者生成新的数据,执行回调 注1:需配合刷新接口使用 |
---|---|---|
参数 | subscribeMarkerData(observer: (data: { [key: string]: any }, observer: {unsubscribe: () => {}}) => void): void; |
|
返回值 | - | - |
示例 | 示例:根据数据库表字段,控制模型是否可见
| |
应用示例 | JS实现数据库表字段控制FVS模型显隐 | |
移动端 | 不支持移动端 |
updateMarkerData
方法 | updateMarkerData((data)) | 可单独更新三维组件数据图层中指定模型对象数据 |
---|---|---|
参数 | updateMarkerData(predicate: (data) => boolean, updater: (data) => void); |
|
返回值 | - | - |
示例 | 示例:更新「停车场模型」中「车辆监控」数据图层指定模型对象的多个标签值:
| |
应用示例 | 使用文本框控件,输入对应车辆编号和停车时长,编辑结束后模型数据变化。(停车场模型设置了停车时长超过 10h 模型红色预警)如下图所示: 点击下载模板:JS实现更新指定模型数据.fvs | |
移动端 | 不支持移动端 |
getRoamAnimations
方法 | getRoamAnimations() | 获取三维组件的所有漫游路径信息(目前仅支持返回漫游路径名称) |
---|---|---|
参数 | - | - |
返回值 | RoamAnimationsData[] | interface RoamAnimationsData{ /** * 漫游路径名称 */ name:string } |
示例 | 示例:获取「自定义模型」组件的漫游路径信息
| |
应用示例 | - | |
移动端 | 不支持移动端 |
playRoamAnimations
方法 | playRoamAnimations() | 播放漫游动画 |
---|---|---|
参数 | RoamAnimationOptions | type RoamAnimationOptions = { |
返回值 | - | |
示例 | 示例1:给标题组件添加点击事件,播放「自定义模型」组件的「漫游路径1」动画
示例2:在「页面加载结束事件」中写代码,实现页面加载结束后自动播放漫游动画
| |
应用示例 | - | |
移动端 | 不支持移动端 |
updateRoamAnimationAction
方法 | updateRoamAnimationAction() | 暂停/继续/退出播放漫游动画 |
---|---|---|
参数 | "pause" |"continue"|"exit" | "pause" :暂停 "continue":继续 "exit":退出 |
返回值 | - | - |
示例 | 示例1:暂停「自定义模型」组件漫游动画
示例2:继续「自定义模型」组件漫游动画
示例3:退出「自定义模型」组件漫游动画
| |
应用示例 | - | |
移动端 | 不支持移动端 |
getAnimationByName
方法 | getAnimationByName("animationName") | 获取三维组件的动画对象 |
---|---|---|
参数 | animationName | 动画名称 即为 getMeshByName 里获取的 animations[index].name。 注:此处为具体动画名称,非模型名称。如下图所示: |
返回值 | - | - |
示例 | 获取「三维自定义场景1_页面1」的「SMT贴片机爆炸归位」模型的「1爆炸」动画
开始播放「1爆炸」动画
暂停播放「1爆炸」动画 animation.pause() 结束播放「1爆炸」动画
| |
应用示例 | - | |
移动端 | 不支持移动端 |