反馈已提交

网络繁忙

JS实现FVS模型的显示或隐藏

  • 文档创建者:Alicehyy
  • 历史版本:3
  • 最近更新:Alicehyy 于 2023-11-14
  • 1. 概述

    适用场景:安装了「FineVis数据可视化」插件的用户,可参考本文了解 FVS 模板的相关功能。

    1.1 版本

    报表服务器版本
    插件版本
    11.0.9V1.14.0

    1.2 应用场景

    在制作三维场景时,可能存在有不同类型的多个监测点位模型,希望通过点击按钮展示不同的点位。

    效果如下图所示:

    8F446A21-0E1A-4C98-9EC9-18878F8AFE83.GIF

    1.3 实现思路

    通过 JavaScript 点击事件实现,JavaScript 代码如下:

    注:仅支持 三维自定义场景 组件和 三维城市场景 组件中的自定义模型。

    duchamp.getWidgetByName("组件名称").getMeshByName("模型名称").setVisible(false);
    //设置模型对象是否可见,true表示可见,false表示不可见

    2. 示例

    2.1 新建模板

    点击设计器左上角「文件>新建可视化看板」,创建一张空白模板,可自定义名称和尺寸。如下图所示:

    1696926492272814.png

    2.2 设计三维自定义场景组件

    2.2.1 添加组件并创建场景

    添加三维自定义场景组件到页面,点击「编辑组件」,生成一个空场景。如下图所示:

    1681444153406737.gif

    2.2.2 上传并添加模型

    1)点击下载并解压 glb 模型文件:点位模型资源.zip

    2)在三维自定义场景组件编辑界面,点击「模型>添加模型对象>上传新模型」,将模型上传后,选中模型,将其添加到场景中。如下图所示:

    注:V1.18.1 及之后版本支持多选模型批量上传。

    03B489C5-1C06-4599-8C0D-6EF8D9421A57.GIF

    3)选中模型对象,复制模型,适当调整模型位置、场景视角。可根据实际情况修改模型名称,后续需通过获取模型名称实现模型的隐藏与显示。

    最终效果如下图所示:

    1693366874464401.png

    4)完成场景设置后,点击左上角「返回可视化看板」返回到画布。

    2.3 设置模型隐藏显示

    2.3.1 添加标题组件

    添加一个标题组件,组件内容为「只显示蓝色点」。如下图所示:

    Snag_8ede4415.png

    2.3.2 设置 JavaScript 点击事件

    给标题组件添加一个 JavaScript 点击事件,JavaScript 代码如下:

    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("蓝色点").setVisible(true); //true表示可见
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("蓝色点_c1").setVisible(true);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("橙色点").setVisible(false); //false表示不可见
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("橙色点_c1").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("青色点").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("青色点_c1").setVisible(false);

    步骤如下图所示:

    Snag_8f492ceb.png

    另外复制两个已设置好的标题组件,分别为「只显示橙色点」和「只显示青色点」,修改 JavaScript 代码分别如下:

    • 只显示橙色点

    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("蓝色点").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("蓝色点_c1").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("橙色点").setVisible(true);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("橙色点_c1").setVisible(true);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("青色点").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("青色点_c1").setVisible(false);
    • 只显示青色点

    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("蓝色点").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("蓝色点_c1").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("橙色点").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("橙色点_c1").setVisible(false);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("青色点").setVisible(true);
    duchamp.getWidgetByName("自定义模型1_页面1").getMeshByName("青色点_c1").setVisible(true);

    2.4 效果预览

    点击模板右上角「保存」,「预览」按钮,效果如 1.2 节效果所示。

    注:不支持移动端。

    3. 模板下载

    附件列表


    主题: FineVis数据可视化
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持