物联网3D,物业基础设施3D运维,使用webgl(three.js)与物联网设备结合案例。搭建智慧楼宇,智慧园区,3D园区、3D物业设施,3D楼宇管理系统——第八课

简介: 物联网相比这些年来,大家都了解很多了,直白的讲,就是万物互联,万物上网。那么这里的物联网3D就是指通过三维可视化的方式展现物联网监控设备。对设备的位置信息,状态信息能一目了然。面向IT设施和资源的一体化综合监控与远程操控方式。通过三维可视化方式展现,解决监控资源繁多、开源工具使用复杂、问题定位困难等问题。

写在前面的废话:

很久没有更新文章了,这段时间一直忙于项目落地,虽然很忙,但是感觉没有总结,没有提炼的日子,总是让人感觉飘飘忽忽的。

所幸放下一些事,抽出一些时间,把近期的项目做一些整理与记录。也算是阶段性的收拾过去,整装再发吧。

作为程序员嘛,总要整理整理自己的,不管是知识储备,还是项目应用,亦或者生活种种,都要隔一段时间,整理一下,这样心不会乱,回首亦有节点。

 

今天要讲解的课程是《物联网3D,使用webgl(three.js)与物联网设备监控运维展示》课程之物业基础设施3D运维篇

首先我们描述一下概念:

物联网3D:物联网相比这些年来,大家都了解很多了,直白的讲,就是万物互联,万物上网。那么这里的物联网3D就是指通过三维可视化的方式展现物联网监控设备。对设备的位置信息,状态信息能一目了然。面向IT设施和资源的一体化综合监控与远程操控方式。通过三维可视化方式展现,解决监控资源繁多、开源工具使用复杂、问题定位困难等问题。

物业基础设施运维:物业基础设施包括了供配电、给排水、梯控、监控视频、暖通空调、门禁道闸、停车场道闸、照明、消防、周界环境等待各大门类,伴随着物业基础设施设备先进性、智能性、复杂性的增加,传统依靠人工巡检 和 主观判断的运维管理方式,以养为先 的维护模式已经不能适应行业快速发展的需要。现有的信息化系统及设备各自为政、相互割裂,对于运维人员的专业技能提出了更高的要求。依靠传统管理方式不仅效率低下,而且容易出错,也造成人工成本的增加,亟需利用智能化技术及手段实现对基础设施设备的智慧化运维管理。

今天我们主要讲述的事three.js(webgl)、3D技术再物业基础设施运维中的展示与应用。

项目目标:基于物联网3D技术,结合开放的IOT中台开放能力,助力物业管理数字化转型,实现基础设施设备的智慧化、可视化运维管理。

技术交流 1203193731@qq.com

交流微信:

微信图片_20211116202246.png

如果你有什么要交流的心得 可邮件我

一、项目效果与功能说明:

闲话少叙,我们先看一下最终的实现效果:

1.1 、园区的整体

采用科技蓝底色,数据大屏风格,中间绘以3D大楼效果。道路上用流光效果代替灯光与车流,写实风格与科技感结合。

1.gif

1.2、设备房列表

点击设备房案例,无缝切换到楼层模式,通过科技蓝楼层方式,简洁明了的展示每个楼层的效果。并且把设备房位置通过精灵模型放置到对应的位置上。

鼠标滑动到设备房时能够展示设备房的名称信息。

image.png

1.3、双击设备房,显示设备房内详情

双击设备房,显示设备房内详细信息以及重要设备的实时重要量监控信息。

1.3.1、消防泵房效果

image.png

 

 

1.3.2、生活泵房效果

1.3.3、配电房效果

1.3.4、双层设备房效果

1.4、楼宇设备 楼宇电表

点击电表按钮,显示楼宇电表排布信息,与设备概览

 

 

1.5、电梯监控展示

 

 

 

二、具体实现方式

2.1、首先我们准备场景中需要的模型,本人还是推崇简单模型使用代码建模方式,复杂模型考虑到工作效率,采用第三方载入方式。

2.1.1、准备周边环境模型,这里我们主要还是用代码的方式实现周边环境。

a、最难的流光效果

我们通过改变管道贴图的uv贴图值来实现流光效果,适当改变透明度以及贴图的样式。

[{"show":true,"uuid":"","name":"flowtube_6","objType":"flowTube","points":[{"x":0,"y":300,"z":0},{"x":100,"y":250,"z":100},{"x":100,"y":400,"z":400}],"position":{"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1},"rotation":[{"direction":"x","degree":0}],"style":{"skinColor":16772846,"imgurl":"../../img/3dImg/right1.png","canvasSkin":{"cwidth":1024,"cheight":128,"cwNub":16,"chNub":2,"cMarginW":0.2,"cMarginH":0.2,"run":true,"speed":8,"fps":40,"direction":"w","forward":"f","bgcolor":"rgba(255, 0, 162, 0.68)","side":2}},"segments":64,"radialSegments":8,"closed":false,"radius":10,"showSortNub":6}]

b、平时项目过程中积累的虚拟楼宇

 

 

[{"show":true,"uuid":"","name":"hb_2_11","objType":"Lathe","position":{"x":7418.924,"y":0,"z":1036.092},"points":[{"x":1000,"y":0,"z":0},{"x":1000,"y":2000,"z":0}],"style":{"skinColor":1433087,"imgurl":"../img/3dimg/kehuandimian.png","repeatx":true,"width":1,"repeaty":true,"height":20,"side":2,"opacity":0.3},"segments":1,"radialSegments":4,"closed":true,"phiStart":0.7853981633974483,"phiLength":6.283185307179586,"showSortNub":10000,"customType1":"","customType2":"","animation":null,"dbclickEvents":null,"rotation":[{"direction":"x","degree":0},{"direction":"y","degree":0},{"direction":"z","degree":0}],"radius":null,"scale":{"x":1.5,"y":2,"z":1.5},"BindDevId":null,"BindDevName":null,"devInfo":null,"BindMeteId":null,"BindMeteName":null}]

c、路灯效果

 

 

 

View Code

 

 

 

 

c、接下来就是通过各种代码模型的组合,与贴图,产生环境模拟

 

 

 

2.1.2、单体大楼效果

2.1.3、我们同样用代码,写出大楼的样子

 

 

 

模型代码:

View Code

 

2.1.3、我们再看看楼层的代码模型

 

楼层模型比较简单:

使用代码写出一个个楼层平面,然后clone出来,修改位置即可。

 

2.2、设备房实现

2.2.1、与其它方式一样,还是先写出设备房模型,这一点由于前期项目积累,以及积累了很多设备模型的代码,我们后面项目直接组装复用即可

例如下列设备

水浸:

 

 

温湿度:

 

 

 

2.2.2、设备房结构我们采用半透明,加上虚拟墙体效果,这样便于操作展示设备信息,看起来也充满科技感,如下:

 

 

设备房代码:

View Code

三、具体实现

3.1、起始页部分重要代码如下

<!DOCTYPE html>

<html style="padding:0px;margin:0px;">

<head>

 <title></title>

 <meta charset="utf-8"/>

 <link href="../css/iconfont.css" rel="stylesheet"/>

 <link href="../css/font-awesome.min.css" rel="stylesheet"/>

 <link href="../plugs/layer/layui/css/layui.css" rel="stylesheet"/>

 <link href="../css/animate.css" rel="stylesheet"/>

 <script src="../plugs/echarts.min.js"></script>

 <link href="../css/index.css" rel="stylesheet"/>

 <link href="../plugs/jquery.mCustomScrollbar.css" rel="stylesheet"/>

 <script src="../plugs/jquery-2.2.2.js"></script>

 <script src="../plugs/jquery.mCustomScrollbar.js"></script>

 <script src="../plugs/layer/layer.js"></script>

 <script src="../plugs/layer/laydate/laydate.js"></script>

 <script src="../plugs/layer/layui/layui.js"></script>

 <link href="../css/bootstrap.css" rel="stylesheet"/>

 <link href="../css/bootstrap-table.css" rel="stylesheet"/>

 <script src="../plugs/bootstrap-table.js"></script>

 <script src="../plugs/bootstrap.js"></script>

 <script src="../js/commonFunction.js"></script>

 

 <script src="../plugs/three/three.min.js"></script>

 

 

 <script src="../plugs/layui-v2.6.8/layui/layui.js"></script>

 <link href="../plugs/layui-v2.6.8/layui/css/layui.css" rel="stylesheet"/>

 <script src="../js/index.js"></script>

 <script src="../js/initPage.js"></script>

 <script src="../js/modelBusiness.js"></script>

 <script src="../js/config.js"></script>

 <script src="../js/webAPI.js"></script>

 <script src="../plugs/libs/adapter.min.js"></script>

 <script src="../js/webrtcstreamer.js"></script>

</head>


<body id="mainBody" onload="threeStart(0);" style="padding:0px;margin:0px;">

   <!--onload="threeStart(0);"-->

   <script>

   if (!Detector.webgl) {

     layer.alert("您的浏览器不支持3D功能,请使用支持WebGL的浏览器(例如:chrome浏览器、ie11以上浏览器等)");

   }

   </script>

   <audio id="musicfx" style="display:none;">

       <source src="../img/alarm.WAV" type="audio/mpeg">

   </audio>

   <div id="dataCanvasList" style="position:absolute;z-index:-1;display:none;width:5px;height:5px;overflow:auto;"><div style="width:10px;height:10px;float:left;position:relative;"></div></div>

   <div id="canvas-frame" class="canvas_frame"></div>

   <div class="mainFloor_left" id="floorsBtn">


   </div>

   <div class="main-right">

       <div class="contentRight" id="chart_index" style="height:100%;display:none;">

           <div class="chatData" id="dataCenterRightContent" style="height:calc(100% - 20px)">

               <div class="block-header">

                   <div class="container">

                       <div>

                           <div class="left">

                               <div class="left__bg"></div>

                           </div>

                           <div class="right">

                               <div class="right__bg1"></div>

                               <div class="right__bg2"></div>

                               <div class="right__bg3"></div>

                           </div>

                       </div>

                   </div>

                   <img class="icon" src="../img/block-header-arrow.png"/>

                   <div class="title" v-text="title">设备总览</div>

               </div>

               <div class="chatContent" id="index_chart" style="height:130px"></div>

               <div class="chatContent" id="index_1" style="height:calc(100% - 170px); margin-top:10px;   overflow-y: auto;">

               </div>

           </div>

       </div>

       <div class="contentRight" id="chart_door" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container">

                       <div>

                           <div class="left">

                               <div class="left__bg"></div>

                           </div>


                           <div class="right">

                               <div class="right__bg1"></div>

                               <div class="right__bg2"></div>

                               <div class="right__bg3"></div>

                           </div>

                       </div>

                   </div>

                   <img class="icon" src="../img/block-header-arrow.png"/>

                   <div class="title" v-text="title">智能门禁系统</div>

               </div>




               <div class="chatContent" id="door_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       楼层设备总览

                   </div>

               </div>

               <div class="chatContent" id="door_2">

                   <div class="doorLi_Div">

                       <div class="doorLi_DivTop">


                           <font class="doorLi_DivTopName">3号梯</font>

                           <font class="doorLi_DivTopState">在线</font>

                       </div>

                       <div class="doorLi_DivBottom">

                           <img class="doorLi_DivBottomImg" src="../img/pics/icons/doorPic.png"/>

                           <div class="doorLi_divBtn1">

                               <font style="float:left;">门禁开关:</font>

                               <div class="doorLi_openClose"></div>

                           </div>

                           <div class="doorLi_divBtn2">

                               查看进出记录

                           </div>

                       </div>

                   </div>

               </div>

           </div>


       </div>


       <div class="contentRight" id="chart_video" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container">

                       <div>

                           <div class="left">

                               <div class="left__bg"></div>

                           </div>


                           <div class="right">

                               <div class="right__bg1"></div>

                               <div class="right__bg2"></div>

                               <div class="right__bg3"></div>

                           </div>

                       </div>

                   </div>

                   <img class="icon" src="../img/block-header-arrow.png"/>

                   <div class="title" v-text="title">视频系统</div>

               </div>




               <div class="chatContent" id="video_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       楼层设备总览

                   </div>

               </div>

               <div class="chatContent" id="video_2">


               </div>

           </div>


       </div>


       <div class="contentRight" id="chart_TV" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       信息发布系统

                   </div>

               </div>

               <div class="chatContent" id="TV_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       楼层设备总览

                   </div>

               </div>

               <div class="chatContent" id="TV_2">

                   <div class="TVLi_Div">

                       <div class="TVLi_DivTop">

                           <font class="TVLi_DivTopName">3号梯</font>

                           <font class="TVLi_DivTopState">在线</font>

                       </div>

                       <div class="TVLi_DivBottom">

                           <img class="TVLi_DivBottomImg" src="../img/pics/icons/tvPic.png"/>

                           <div class="TVLi_divBtn1">

                               <font style="float:left;">设备开关:</font>

                               <div class="TVLi_openClose"></div>

                           </div>


                           <div class="TVLi_divBtn3">

                               <table style="width:100%;">

                                   <tr>

                                       <td>

                                           <img src="../img/pics/icons/voiceBtn2.png" style="width:25px;height:25px;"/>

                                       </td>

                                       <td>

                                           <img src="../img/pics/icons/restartBtn2.png" style="width:25px;height:25px;"/>

                                       </td>

                                   </tr>

                                   <tr><td>设置音量</td><td>设备重启</td></tr>

                               </table>

                           </div>


                           <div class="TVLi_divBtn2">

                               查看发布内容

                           </div>

                       </div>

                   </div>

               </div>

           </div>


       </div>

       <div class="contentRight" id="chart_lift" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       智能电梯系统

                   </div>

               </div>

               <div class="chatContent" id="lift_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       电梯内实时监控

                   </div>

               </div>

               <div class="chatContent" id="lift_2">

                   <!--<table style="width:360px;margin-left:40px;">

                     <tr>

                       <td>

                         <video id="lift_video1" muted playsinline controls style="width:360px; height:240px;"></video>

                         <div class="indexVideoContent" style="width:360px;">

                           <font id="lift_video1_title" class="indexVideoTitle">电梯实时监控1</font>

                         </div>

                       </td>

                     </tr>

                     <tr>

                       <td>

                         <video id="lift_video2" muted playsinline controls style="width:360px; height:240px;"></video>

                         <div class="indexVideoContent" style="width:360px;">

                           <font id="lift_video2_title" class="indexVideoTitle">电梯实时监控2</font>

                         </div>

                       </td>

                     </tr>

                   </table>-->


                   <div class="liftLi_Div">

                       <div class="liftLi_DivTop">


                           <font class="liftLi_DivTopName" id="lift_title_1">1号梯</font>

                           <font class="liftLi_DivTopState">在线</font>

                       </div>

                       <div class="liftLi_DivBottom">

                           <img class="liftLi_DivBottomImg" src="../img/pics/icons/liftPic.png"/>

                           <img class="liftLi_DivBottomImgState" src="../img/pics/icons/liftUp.png"/>


                           <font class="liftLi_DivBottomFloor">8<font class="liftLi_DivBottomFloorUnit">&nbsp;F</font></font>

                           <div class="liftLi_divBtn1" id="lift_showVideoBtn_1" onclick="indexPage.showVideoWin(0)">

                               查看电梯监控

                           </div>

                           <div class="liftLi_divBtn2">

                               查看使用记录

                           </div>

                       </div>

                   </div>

                   <div class="liftLi_Div">

                       <div class="liftLi_DivTop">

                           <font class="liftLi_DivTopName" id="lift_title_2">2号梯</font>

                           <font class="liftLi_DivTopState">在线</font>

                       </div>

                       <div class="liftLi_DivBottom">

                           <img class="liftLi_DivBottomImg" src="../img/pics/icons/liftPic.png"/>

                           <img class="liftLi_DivBottomImgState" src="../img/pics/icons/liftUp.png"/>


                           <font class="liftLi_DivBottomFloor">8<font class="liftLi_DivBottomFloorUnit">&nbsp;F</font></font>

                           <div class="liftLi_divBtn1" onclick="indexPage.showVideoWin(1)">

                               查看电梯监控

                           </div>

                           <div class="liftLi_divBtn2">

                               查看使用记录

                           </div>

                       </div>

                   </div>

               </div>

           </div>


       </div>

       <div class="contentRight" id="chart_fire" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       智慧消防系统

                   </div>

               </div>

               <div class="chatContent" id="fire_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       楼层设备总览

                   </div>

               </div>

               <div class="chatContent" id="fire_2">

                   <div class="fireLi_Div">

                       <div class="fireLi_DivTop">


                           <font class="fireLi_DivTopName">3号梯</font>

                           <font class="fireLi_DivTopState">在线</font>

                       </div>

                       <div class="fireLi_DivBottom">

                           <img class="fireLi_DivBottomImg" src="../img/pics/icons/fireControlPic.png"/>


                           <div class="fireLi_divBtn2">

                               查看报警记录

                           </div>

                           <div class="fireLi_divBtn1">

                               <font style="float:left;">位置:检验科门口</font>

                           </div>

                       </div>

                   </div>

               </div>

           </div>


       </div>


       <div class="contentRight" id="chart_environment" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       环境监测系统

                   </div>

               </div>

               <div class="chatContent" id="environment_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       楼层设备总览

                   </div>

               </div>

               <div class="chatContent" id="environment_2">


                   <div class="fireLi_Div">

                       <div class="fireLi_DivTop">

                           <font class="fireLi_DivTopName" title=""></font>\

                           <font class="fireLi_DivTopState"></font>

                       </div>

                       <div class="fireLi_DivContent">

                           <div class="fireLi_DivMete">

                               <div class="fireLi_DivMeteName">

                                   温度:

                               </div>

                               <div class="fireLi_DivMeteValue">

                                   26.5℃

                               </div>

                           </div>


                       </div>

                       <div class="fireLi_DivBottom">

                           <div class="fireLi_divBtn1">

                               <font style="float:left;">位置:</font>

                               <font style="float:left;">啊是犯法的事</font>

                           </div>

                           <div class="fireLi_divBtn2" onclick="indexPage.showEDevAlarmListByDev()">

                               查看报警记录

                           </div>

                       </div>

                   </div>



               </div>

           </div>


       </div>

       <div class="contentRight" id="chart_radio" style="display:none;">

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       智能广播系统

                   </div>

               </div>

               <div class="chatContent" id="radio_1"></div>

           </div>

           <div class="chatData">

               <div class="block-header">

                   <div class="container"><div><div class="left"><div class="left__bg"></div></div><div class="right"><div class="right__bg1"></div><div class="right__bg2"></div><div class="right__bg3"></div></div></div></div><img class="icon" src="../img/block-header-arrow.png"/><div class="title" v-text="title">

                       楼层设备总览

                   </div>

               </div>

               <div class="chatContent" id="radio_2">


               </div>

           </div>


       </div>

   </div>

   <div id="fourBtns" class="btns_four">

       <div id="indexBtn" class="btn_li action">主楼</div>

       <div id="sbfBtn" class="btn_li">设备房</div>

       <div id="xzldbBtn" class="btn_li">写字楼电表</div>

       <div id="xfmdylBtn" class="btn_li">消防末端压力</div>

       <!--<div id="ltxtBtn" class="btn_li">冷通系统</div>-->

   </div>


   <div id="dataCeneterDiv" style="display:none;">

       <div class="chatData" style="width:100%;margin-top:20px;background-color:rgba(3, 24, 56, 0);">

           <div class="block-header">

               <div class="container" style="width:94% !important">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" id="roomname" v-text="title">数据中心</div>

           </div>

           <div class="exitBtn" id="room_exitBtn">

               关闭

           </div>

           <div id="iframe_dataCenterContent" class="chatContent" style="width:100%;">

               <iframe style="width:100%;border:0px solid black;height:100%;" id="iframe_bpd"></iframe>

           </div>

       </div>

   </div>


   <div id="peidianshi" style="display:none;">

       <div class="chatData" style="width:1030px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:100% !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title">变配电系统</div>

           </div>

           <div id="iframe_bpdContent" class="chatContent" style="width:1030px;">

               <iframe style="width:100%;border:0px solid black;height:600px;" id="iframe_bpd"></iframe>

           </div>

       </div>

   </div>


   <div id="jpaishui" style="display:none;">

       <div class="chatData" style="width:980px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:980px !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title">给排水系统</div>

           </div>

           <div id="waterCotent" class="chatContent" style="width:980px;height:700px;overflow-x:hidden;overflow-y:auto;">


           </div>

       </div>

   </div>

   <div id="songfeng" style="display:none;">

       <div class="chatData" style="width:970px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:970px !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title">送排风系统</div>

           </div>

           <div class="chatContent" id="songfengContent" style="width:970px;padding:20px;max-height:640px;overflow-y:scroll;overflow-x:hidden;">





           </div>

       </div>

   </div>

   <div id="alarmsList" style="display:none;">

       <div class="chatData" style="width:700px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:700px !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title">设备报警列表</div>

           </div>

           <div class="chatContent" style="width:700px;">

               <!--<table id="alarmTable"></table>-->

               <div style="width:680px; margin-left:10px; height:600px;overflow-y:scroll" id="AlarmListResult">


               </div>

           </div>

       </div>

   </div>


   <div id="doorEventList" style="display:none;">

       <div class="chatData" style="width:700px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:700px !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title">门禁记录查询</div>

           </div>

           <div class="chatContent" style="width:700px;">

               <div id="doorSearchDiv">

                   <table style="color:white !important;margin-left:10px;">

                       <tr>

                           <td>查询条件:</td>

                           <td style="width:145px;"><input id="doorEventStartTime" placeholder="yyyy-MM-dd HH:mm:ss" style="float:left;width:140px;height:28px; font-size:14px; text-align:center;line-height:28px;color:white;background-color:rgba(0,0,0,0) !important;color:#32C5FF !important;border:1px solid #32C5FF;"/></td>

                           <td style="width:20px;"></td>

                           <td style="width:145px;"><input id="doorEventEndTime" placeholder="yyyy-MM-dd HH:mm:ss" style="float:left;width:140px;height:28px; font-size:14px; text-align:center;line-height:28px;color:white;background-color:rgba(0,0,0,0) !important;color:#32C5FF !important;border:1px solid #32C5FF;"/></td>

                           <td style="width:100px;">

                               <input type="hidden" id="doorDevicecSn" value=""/>

                               <!--<select style="float:left;width:80px;height:28px; font-size:14px; text-align:center;line-height:28px;color:white;background-color:rgba(0,0,0,0) !important;color:#32C5FF !important;border:1px solid #32C5FF;">

                                 <option>授权</option>

                               </select>-->

                           </td>

                           <td style="width:100px;">

                               <div id="searchDoorEventBtn" style=" float:left;width:80px;height:28px; background-image: linear-gradient(to right, #024D9E , #09FDFF);border-radius:2px;font-size:14px; text-align:center;line-height:28px;color:white;cursor:pointer;">

                                   查&nbsp;

                               </div>

                           </td>

                           <td style="width:100px;">

                               <div id="exitDoorEventBtn" class="divBtn" style="width:80px;height:28px;line-height:28px; ">

                                   退出

                               </div>

                           </td>

                       </tr>

                   </table>


               </div>

               <div style="width:680px; margin-left:10px; height:500px;overflow-y:scroll" id="doorEventListResult">


               </div>

           </div>

       </div>

   </div>



   <div id="devAllMeteList" style="display:none;">

       <div class="chatData" style="width:700px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:700px !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title" id="devTitle">设备量</div>

           </div>

           <div class="chatContent" style="width:700px;">

               <div style="width:680px; margin-left:10px;margin-top:15px; height:500px;overflow-y:scroll" id="devMeteListResult">




               </div>

           </div>

       </div>

   </div>

   <div id="devAlarmList" style="display:none;">

       <div class="chatData" style="width:700px;margin-top:20px;background-color:rgba(3, 24, 56, 0.64);">

           <div class="block-header">

               <div class="container" style="width:700px !important;">

                   <div>

                       <div class="left">

                           <div class="left__bg"></div>

                       </div>

                       <div class="right">

                           <div class="right__bg1"></div>

                           <div class="right__bg2"></div>

                           <div class="right__bg3"></div>

                       </div>

                   </div>

               </div>

               <img class="icon" src="../img/block-header-arrow.png"/>

               <div class="title" v-text="title">报警记录查询</div>

           </div>

           <div class="chatContent" style="width:700px;">

               <div id="doorSearchDiv">

                   <table style="color:white !important;margin-left:10px;">

                       <tr>

                           <td>查询条件:</td>

                           <td style="width:155px;"><input id="alarmStartTime" placeholder="yyyy-MM-dd HH:mm:ss" style="float:left;width:150px;height:28px; font-size:14px; text-align:center;line-height:28px;color:white;background-color:rgba(0,0,0,0) !important;color:#32C5FF !important;border:1px solid #32C5FF;"/></td>

                           <td style="width:20px;"></td>

                           <td style="width:155px;"><input id="alarmEndTime" placeholder="yyyy-MM-dd HH:mm:ss" style="float:left;width:150px;height:28px; font-size:14px; text-align:center;line-height:28px;color:white;background-color:rgba(0,0,0,0) !important;color:#32C5FF !important;border:1px solid #32C5FF;"/></td>

                           <td style="width:80px;">

                               <select id="alarmDevSort" style="float:left;width:60px;height:28px; font-size:14px; text-align:center;line-height:28px;color:white;background-color:rgba(0,0,0,0) !important;color:#32C5FF !important;border:1px solid #32C5FF;">

                                   <option value="1">升序</option>

                                   <option value="2">降序</option>

                               </select>

                               <input type="hidden" id="selectEAlarmDevid"/>

                           </td>

                           <td style="width:100px;">

                               <div id="searchDevAlarmBtn" style=" float:left;width:80px;height:28px; background-image: linear-gradient(to right, #024D9E , #09FDFF);border-radius:2px;font-size:14px; text-align:center;line-height:28px;color:white;cursor:pointer;">

                                   查&nbsp;

                               </div>

                           </td>

                           <td style="width:100px;">

                               <div id="exitDevAlarmBtn" class="divBtn" style="width:80px;height:28px;line-height:28px; ">

                                   退出

                               </div>

                           </td>

                       </tr>

                   </table>


               </div>

               <div style="width:680px; margin-left:10px;margin-top:15px; height:500px;overflow-y:scroll" id="devAlarmListResult">

               </div>

           </div>

       </div>

   </div>

</body>


<script>

   $(document).ready(function () {

       if (window.parent.loadingClose3DFun) {

           window.parent.loadingClose3DFun();

       }

           showLoading(100, config.BuildCameraPosition, config.BuildCameraTarget, null, function () {

           modelBussiness.init();

           },3000);

       });

       

</script>

</html>

 

3.2、业务逻辑部分重要代码与讲解如下

 

View Code

3.3、交互逻辑代码

View Code

 

 

 

由于篇幅原因,这一课先介绍到这里

后面我将继续讲解用webgl 建立 3D隧道、3D桥梁、webgl实现三维隧道桥梁、three.js实现三维隧道桥梁、桥梁隧道三维应用炫酷效果等等

技术交流 1203193731@qq.com

交流微信:

   微信图片_20211116202246.png

如果你有什么要交流的心得 可邮件我

 

 


 

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
1月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
56 3
|
9天前
|
人工智能 监控 物联网
深度探索人工智能与物联网的融合:构建未来智能生态系统###
在当今这个数据驱动的时代,人工智能(AI)与物联网(IoT)的深度融合正引领着一场前所未有的技术革命。本文旨在深入剖析这一融合背后的技术原理、探讨其在不同领域的应用实例及面临的挑战与机遇,为读者描绘一幅关于未来智能生态系统的宏伟蓝图。通过技术创新的视角,我们不仅揭示了AI与IoT结合的强大潜力,也展望了它们如何共同塑造一个更加高效、可持续且互联的世界。 ###
|
9天前
|
Web App开发 网络协议 安全
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
|
12天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
35 3
|
21天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
45 7
|
20天前
|
运维 监控 中间件
数据中心运维监控系统产品价值与优势
华汇数据运维监控系统面向IT基础架构及IT支撑平台的监控和运维管理,包含监测、分析、展现和告警。监控范围涵盖了网络设备、主机系统、数据库、中间件和应用软件等。
43 4
|
1月前
|
物联网
物联网卡不能使用在什么设备上
“物联网卡不能使用在什么设备上”这一操作或规定,通常基于物联网卡的特性、使用条款以及设备兼容性等因素。以下是对这一问题的详细分析和操作建议:
|
1月前
|
存储 监控 物联网
医疗物联网设备精细化管理系统解决方案
华汇数据智慧医院物联网管理系统解决方案是一种集物联网、云计算、大数据和人工智能等先进技术于一体的综合性解决方案,旨在提升医院的运营效率、医疗质量和患者满意度。
73 3
|
1月前
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第13天】 本文探讨了高效运维管理的关键策略和实践,旨在帮助运维团队提升系统的稳定性。通过分析常见问题,提出具体的解决方案,包括监控与告警、自动化工具的应用、故障排查与恢复、性能优化以及安全防护等方面。通过这些策略和实践,可以帮助企业构建一个稳定、可靠且高效的IT系统。
74 1
|
15天前
|
运维 监控 网络协议
自动化运维的魔法——打造高效、可靠的系统
【10月更文挑战第32天】在数字化时代的浪潮下,运维不再是简单的硬件维护和故障排除。它已经演变成一场关乎效率、稳定性和创新的技术革命。自动化运维,作为这场革命的核心,正引领着企业走向更加智能和高效的未来。本文将带你探索自动化运维的世界,揭示其背后的原理和实践,让你领略到自动化带来的无限可能。
23 0

相关产品

  • 物联网平台
  • 下一篇
    无影云桌面