西龙 發表於 2020-2-10 08:44:00

基于 HTML5 WebGL 的智慧城市(一)

<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><strong><span style="font-family: 微软雅黑; font-size: 15pt">前言</span></strong></p>
<p><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">  </span>中共中央、国务院在今年12月印发了《</span><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(0, 56, 132, 1); font-size: 10.5pt">长江三角洲区域一体化发展规划纲要</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">》(下文简称《纲要》<span style="font-family: Calibri">)</span>,并发出通知,要求各地区各部门结合实际认真贯彻落实。</span></p>
<p>  <span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">《纲要》强调,要提升基础设施互联互通水平,打造数字长三角,协同建设新一代信息基础设施,共同推动重点领域智慧应用。大力发展基于物联网、大数据、人工智能的专业化服务,提升各领域融合发展、信息化协同和精细化管理水平。围绕城市公共管理、公共服务、公共安全等领域,支持有条件的城市建设基于人工智能和 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">5G</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;物联的城市大脑集群。</span></p>
<p><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">城市治理和管理不仅是国家治理体系的重要组成部分,同时也是全球互联网治理体系的重要载体和构建网络空间命运共同体的重要基础。上个月我们发布了一篇文章《</span><span style="font-family: Arial; color: rgba(0, 56, 132, 1); font-size: 10.5pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial"><span style="font-family: Arial">基于</span> HTML5 WebGL 构建智能城市 3D 场景</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">》,大体介绍了如何使用 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">ht.js</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;<span style="font-family: 宋体">快速</span> </span><span style="font-family: &quot;times new roman&quot;, times; font-size: 10.5pt">3D&nbsp;&nbsp;</span><span style="font-family: 宋体; font-size: 10.5pt">建模,展示了良好的可视化效果,今天继续探讨智慧城市的应用。</span></p>
<p>  <span style="font-family: &quot;times new roman&quot;, times">demo</span>:<span style="font-family: &quot;Times New Roman&quot;; color: rgba(51, 51, 51, 1); font-size: 10.5pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial">&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; color: rgba(0, 56, 132, 1); font-size: 10.5pt">http://www.hightopo.com/demo/city/</span></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><strong><span style="font-family: 微软雅黑; font-size: 15pt">功能点</span></strong></p>
<ul>
<li class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt">&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">应急响应</span></span></li>
<li class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt">&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">交通情况</span></span></li>
<li class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt">&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">城市漫游</span></span></li>
<li class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt">&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">工程情况</span></span></li>
</ul>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><strong><span style="font-family: 微软雅黑; font-size: 15pt">1.应急响应</span></strong></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(102, 102, 102, 1); font-size: 10pt">随着城市化、工业化、信息化进程加快,各种风险隐患层出不穷<span style="font-family: Calibri">,</span>突发事件频繁发生<span style="font-family: Calibri">,</span>已经从<span style="font-family: Calibri">“</span>非常态化<span style="font-family: Calibri">”</span>的偶发事件演变成了<span style="font-family: Calibri">“</span>常态化<span style="font-family: Calibri">”</span>的频发事件<span style="font-family: Calibri">,</span>直接威胁着公众的生命财产安全。为了及时、有效、妥善地处置各种城市突发事件<span style="font-family: Calibri">,</span>必须建立统一领导的指挥系统、常备不懈的保障系统和防患未然的防范系统<span style="font-family: Calibri">,</span>。</span></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><img src="https://img2018.cnblogs.com/common/1496396/201912/1496396-20191216104216733-519120101.gif"></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">上图主要以</span></span><span style="font-family: &quot;times new roman&quot;, times; font-size: 10.5pt">&nbsp;2/3D</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: &quot;times new roman&quot;, times">&nbsp;&nbsp;</span>联动的方式,依次展示了在面对突发情况下,城市应急救援的响应过程。</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">步骤:事故定位-&gt;告警设施自启动<span style="font-family: Calibri">-&gt;</span>电力切断<span style="font-family: Calibri">-&gt;</span>油气截断阀启动<span style="font-family: Calibri">-&gt;</span>周边情况<span style="font-family: Calibri">-&gt;</span>确认告警范围<span style="font-family: Calibri">-&gt;</span>通知学校<span style="font-family: Calibri">-&gt;</span>医院准备<span style="font-family: Calibri">-&gt;</span>应急人员准备<span style="font-family: Calibri">-&gt;</span>交通规划<span style="font-family: Calibri">-&gt;</span>应急方案预备<span style="font-family: Calibri">-&gt;</span>应急方案启动<span style="font-family: Calibri">-&gt;</span>应急资源触发<span style="font-family: Calibri">-&gt;</span>现场方案预备<span style="font-family: Calibri">-&gt;</span>现场方案启动<span style="font-family: Calibri">-&gt;</span>人员进场<span style="font-family: Calibri">-&gt;</span>作业中)</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">实现思路:首先对模型进行分组,并在相应的图元上标记 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">tag </span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">,使用 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">ht.Default.startAnim()</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;&nbsp;来完成每一步的动画效果,然后拼接动画即可实现上图中的 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">3D</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;动画效果。至于右边的 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">2D</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;<span style="font-family: 宋体">步骤显示面板</span>的联动,<span style="font-family: 宋体">因为本</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">demo</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;<span style="font-family: 宋体">采用的是</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">ht.js</span><span style="font-family: 宋体; font-size: 10.5pt">&nbsp;来实现的, </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">ht.DataModel </span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">作为承载</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">Data</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;&nbsp;数据的模型,管理<span style="font-family: 宋体">着</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">Data</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;&nbsp;数据的增删以及事件派发,右侧<span style="font-family: 宋体">的</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">2D</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;<span style="font-family: 宋体">面板里的步骤也是一个个</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">Data</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;,我们只要对其进行</span><strong><span style="font-family: Calibri; color: rgba(0, 56, 132, 1); font-size: 10.5pt">数据绑定</span></strong><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">,在动画执行到某一时刻,通过动态修数据来控制图元的透明度等样式就可以实现 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">2/3D</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;联动了。</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">demo&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">中的</span>事故地点,点击可跳转到另一个室内定位的 </span><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(0, 56, 132, 1); font-size: 10.5pt">案例</span><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(57, 57, 57, 1); font-size: 10.5pt">&nbsp;。</span></p>
<p class="MsoNormal">&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 事故定位动画主要代码</span>
<span style="color: rgba(0, 0, 0, 1)"> animStep_1() {
    let process_01 </span>= <span style="color: rgba(0, 0, 255, 1)">this</span>.main.g2d.dm().getDataByTag("process_01"<span style="color: rgba(0, 0, 0, 1)">);
    process_01.s(</span>"opacity", 1<span style="color: rgba(0, 0, 0, 1)">);
    let emergencyResponseParent_1 </span>= <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.main.g3d
      .dm()
      .getDataByTag(</span>"emergencyResponseParent_1"<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.setVisible(emergencyResponseParent_1, <span style="color: rgba(0, 0, 255, 1)">true</span>, "children"<span style="color: rgba(0, 0, 0, 1)">);
    let children </span>= <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.getChildren(emergencyResponseParent_1);
    children.forEach(i </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
      i.s(</span>"shape3d.transparent", <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      i.s(</span>"shape3d.opacity", 0<span style="color: rgba(0, 0, 0, 1)">);
    });
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.main.anim =<span style="color: rgba(0, 0, 0, 1)"> ht.Default.startAnim({
      duration: </span>2000<span style="color: rgba(0, 0, 0, 1)">,
      easing: t </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> t;
      },
      finishFunc: () </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
            </span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.animStep_2();
      }, </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 动画结束后调用的函数。</span>
      action: (v, t) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
            </span><span style="color: rgba(0, 0, 255, 1)">this</span>.setStepPanel(process_01, t, 4<span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (t &lt;= 0.25<span style="color: rgba(0, 0, 0, 1)">) {
                children[</span>0].s("shape3d.opacity", 5 *<span style="color: rgba(0, 0, 0, 1)"> Ease.easeOutSine(t));
            } </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (t &lt;= 0.375<span style="color: rgba(0, 0, 0, 1)">) {
                children[</span>1<span style="color: rgba(0, 0, 0, 1)">].s(
                  </span>"shape3d.opacity"<span style="color: rgba(0, 0, 0, 1)">,
                  </span>8 * Ease.easeOutSine(t - 0.25<span style="color: rgba(0, 0, 0, 1)">)
                );
            } </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (t &lt;= 0.5<span style="color: rgba(0, 0, 0, 1)">) {
                children[</span>2<span style="color: rgba(0, 0, 0, 1)">].s(
                  </span>"shape3d.opacity"<span style="color: rgba(0, 0, 0, 1)">,
                  </span>8 * Ease.easeOutSine(t - 0.375<span style="color: rgba(0, 0, 0, 1)">)
                );
            }
      }
    });
}</span></pre>
</div>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><strong><span style="font-family: 微软雅黑; font-size: 15pt">2.交通情况</span></strong></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">先上图:</span></span></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><img src="https://img2018.cnblogs.com/common/1496396/201912/1496396-20191216104944139-1482971168.png"></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">从应用领域来看,目前我国智慧交通主要应用在公路交通信息化、城市道路交通管理服务信息化以及城市公交信息化领域。伴随着数字化转型,政府主动牵头智慧城市建设,未来市场潜力巨大。该功能点能更直观有效的反应当前的道路交通情况,使各地政府更加有效的、科学的管理交通,发挥出大城市的交通效能。常规的 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">2D</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;效果图已经不满足于当下的需求了,伴随着大数据、云计算、</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">5G</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">、</span></span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">AI</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">、边缘计算等技术的发展成熟,</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">3D&nbsp;&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">可视</span>化更能直观的、有效的反馈信息。当然,</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">3D<span style="font-family: &quot;times new roman&quot;, times">&nbsp;&nbsp;</span></span><span style="font-family: 宋体; font-size: 10.5pt">可视化离不开一款强大的图形引擎。本模块只是简单地模拟了交通状况,并未继续拓展。</span></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><strong><span style="font-family: 微软雅黑; font-size: 15pt">3.城市漫游</span></strong></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><img src="https://img2018.cnblogs.com/common/1496396/201912/1496396-20191216105536484-1361039183.gif"></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">由于计算机图形学和软硬件技术的快速发展,虚拟现实技术越来越为人们所重视。虚拟现实技术的应用一直是计算机应用领域的热点<span style="font-family: Calibri">,</span>虚拟现实技术的应用价值已经得到了广泛的认可。</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">3D&nbsp;<span style="font-family: 宋体">&nbsp;</span></span><span style="font-family: 宋体; font-size: 10.5pt">漫游可以提供很好的用户交互体验,所以本 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">demo&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;也展示了这一功能。</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">借助于</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">HT</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">,漫游功能的实现只要几行代码就可以实现了。</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; color: rgba(0, 56, 132, 1); font-size: 10.5pt">ht.Shape</span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; color: rgba(57, 57, 57, 1); font-size: 10.5pt">&nbsp;&nbsp;</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">是极其强大的</span>图元类型,这里绘制漫游路线就是使用其扩展<span style="font-family: 宋体">子类</span> </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">ht.Polyline</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;,绘制一条三维空间管道,然后通过获取该路径上的点来不断设置 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">eye </span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><span style="font-family: 宋体">就</span>行了。代码如下:</span></p>
<p class="MsoNormal">&nbsp;</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:false;">// 漫游动画
roamingAnim() {
    // polyline
    let polyline = this.main.g3d.dm().getDataByTag("polyline");
    this.main.anim = ht.Default.startAnim({
      duration: 15000,
      easing: t =&gt; {
            return t;
      },
      finishFunc: () =&gt; {
      }, // 动画结束后调用的函数。
      action: (v, t) =&gt; {
            let length = this.main.g3d.getLineLength(polyline),
                offset = this.main.g3d.getLineOffset(polyline, length * v),
                point = offset.point,
                px = point.x,
                py = point.y,
                pz = point.z;
                this.main.g3d.setEye(
                  px ,
                  py ,
                  pz
                );
                this.main.g3d.setCenter(0, 0, 0);
      }
    });
}</pre>
</div>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><strong><span style="font-family: 微软雅黑; font-size: 15pt">4.工程情况</span></strong></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><img src="https://img2018.cnblogs.com/common/1496396/201912/1496396-20191216105845737-1457224724.png"></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">该页面主要展示了工程情况:大桥(</span><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(0, 56, 132, 1); font-size: 10.5pt">戳</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">)、盾构作业(</span><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(0, 56, 132, 1); font-size: 10.5pt">戳</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">)、海底隧道(</span><span style="mso-spacerun: 'yes'; font-family: Calibri; color: rgba(0, 56, 132, 1); font-size: 10.5pt">戳</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">)。</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">至此,该 </span><span style="mso-spacerun: 'yes'; font-family: &quot;Times New Roman&quot;; font-size: 10.5pt">demo</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">&nbsp;<span style="font-family: 宋体">的功能</span>点就介绍完了。</span></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><img src="https://img2018.cnblogs.com/common/1496396/201912/1496396-20191216105952812-863979399.png"></span></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt"><img src="https://img2018.cnblogs.com/common/1496396/201912/1496396-20191216110006376-1682060184.png"></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">图一,12月<span style="font-family: Calibri">12</span>日晚,厦门地铁<span style="font-family: Calibri">2</span>号线吕厝路口配套的物业开发地块施工现场发生塌陷,所幸没有造成人员伤亡,事故原因疑似管道破裂导致,水流将路基中的稳定土层掏空,加上路面上的汽车压力,导致路面坍塌。</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">图二,3月<span style="font-family: Calibri">21</span>日下午<span style="font-family: Calibri">14:48</span>左右,位于响水县生态化工园区的化工厂发生爆炸。近年来,多加化工厂爆炸,所造成的生命、财产损失不可估量。</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">一场场事故触目惊心,时刻提醒着我们要防患于未然。水是人类生活的源泉而随着城市的发展水污染问题也越来越严重,水资源监管和治理成为城市发展的一大困扰,</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">水质监控</span><span style="mso-spacerun: 'yes'; font-family: Calibri; font-size: 10.5pt">不及时、水灾预警不及时更是直接关系到民生问题。而智慧水务的发展则能非常及时、准确的解决问题。假如有比较好的监控预警系统,这些事故发生的可能性将大大降低。后续会再写些关于智慧水务的文章,也会再拓展应急预案的场景案例。</span></p><br><br>
来源:https://www.cnblogs.com/htdaydayup/p/12047850.html
頁: [1]
查看完整版本: 基于 HTML5 WebGL 的智慧城市(一)