地下管线监控系统中互联网WebGL三维可视化构建技术 ThingJS

简介: 基于ThingJS的通用架构设计随着社会经济的不断发展,城市中的各类地下管线数量不断增加,逐渐构成了结构复杂的地下管网。

三维可视化##3D开发

  1. WebGL 3D技术框架-ThingJS
  2. 三维管线基础数据收集
  3. 三维管线模型分类创建
  4. 三维管线可视化系统开发

在这里插入图片描述

基于ThingJS的通用架构设计随着社会经济的不断发展,城市中的各类地下管线数量不断增加,逐渐构成了结构复杂的地下管网。

传统二维平面管线管理系统,对于地下管线应急事件的处置历来是一个痛点。提高应急处置现场的可视性,更直观地反映地下管网的空间分布情况,三维可视化技术能够很好解决这一问题。近年来,地下管线管理系统逐步由传统C/S架构向B/S架构过渡,现阶段的监控管理对于复杂场景的轻量化展示是一个主要趋势。

WebGL 3D框架-ThingJS

WebGL是基于OpenGL(开放图形库)协议在Web浏览器中进行3D渲染的API,是一个基于纯B/S架构开发的技术。ThingJS是基于WebGL的3D框架,【官方注册地址】用于制作基于场景的轻量化三维可视化对象;将地下管线场景在Web环境中进行重构渲染、着色化,通过ThingJS技术引擎开发三维动画和交互功能,实现了地下管线的漫游及模型的交互控制。

本文梳理了ThingJS的地下管线可视化应用构建方法,简单说明这一实现过程。

三维管线可视化工作主要分为基础数据收集、三维模型建立和三维管线系统建设三大部分。

1. 三维管线基础数据收集

三维建模基础数据主要包括矢量数据、影像数据及管线数据等相关数据。
1) 矢量数据:主要使用地形图及局部修测的带状地形图,确定各自的比例。
2) 影像数据:采用了彩色卫星影像图,选择最近的更新版本,其分辨率为0.8m。
3) 管线数据:管线图及管线信息调查表。

本项目将城市地下管线分为给水、排水、燃气、热力、工业、电力和电信管线7大类。各大类还可以细分,如给水管线包括工业给水、生活给水和消防给水管线;排水管线包括污水和雨水管线。管线的基本几何数据可归纳为管线端点、结合点、变径点与附属设施特征点,此后统称为管点数据。

管线形状多为树枝状、环状或辐射状,每一条管线可以根据交叉点和变径点分解成若干条管线段,交叉点处模拟现实情况,以三通、四通、阀门或变径接头等附属设施相连接。管线段由相应管点数据连接,组成一条不间断的管线段。因此,每一条管线可以抽象为由管线段和附属设施组成。
在这里插入图片描述

2. 三维管线模型分类创建

结合具体城市地形,我们将三维模型分为地形模型、道路模型和管线模型三大类。

1) 地形模型

地形模型主要是指表示地表起伏形态的三维模型。通过3DSMAX可以构建不规则三角格网(TIN),并将等高线生成三维模型,最后与一一对应的正射影像数据叠加生成分块的地形模型。注意将三维模型细分成若干块,可以应对后期制作范围不断扩大、数据不断更新的问题。

2) 道路模型

道路模型是指制作区域内所有等级公路及主次干道的模型。由于最终要将道路模型与管线模型进行叠加故对道路模型的精度要求较高。先按属性码筛选出等级公路及主次干道,并对同一道路进行封闭面处理,然后将数据导入CityBuilder直接进行转为面的操作,形成道路面的平面模型;再利用高程点对平面模型进行高度控制,形成道路的三维模型。

3) 管线模型

3DSMAX中导入相应的管线DWG文件利用管道建模命令直接生成带管径的各类管线模型,最后按各类管线颜色要求创建的贴图,分别赋予不同类型的管线模型;而对于管点模型由于重覆度较高,且每一个独立的模型面数较多,我们采用了利用数据库的建模方法,这样既减少了数据量,又在很大程度上提高了工作效率。

本项目建立了地下管线数据库,设计了管点、管段、官网层等数据结构。
在这里插入图片描述

3. 三维管线可视化开发案例

基于B/S架构设计地下管线三维管理系统,利用ThingJS搭建浏览器端的三维场景,在场景中加载三维管线模型,搭建渲染管线模型、地形模型、双向选择、鼠标拾取等基础功能;同时实现了用户的交互操作,包括模型加载、管线编辑、管线的查询与分析、管线定位等交互功能。技术路线图如下:
在这里插入图片描述

现在还原一个小区水,电,天然气管线可视化,【官方注册地址】,在线查看demo:

3D演示 - 三维地下管线的可视化应用 ThingJS
在这里插入图片描述

第一步,利用CampusBuilder搭建模拟场景。CampusBuilder的模型库有各种各样的模型,使我们搭建出的场景更逼真。使用CampusBuilde创建层级,之后再给层级加外立面就出现了当前的效果。
第二步, 初始化摄像机位置,添加四个按钮,并创建四个方法。
第三步,创建管线,水管线、电线、燃气管线同理。这里简单说一下PolygonLine,它继承THING.LineBase,同样有贴图属性,可以自己从本地上传图片至页面资源后使用。

这里用到了两个方法:
1) buildingOpacity(num);
这个方法的主要作用就是为了将场景虚化,更好的展示我们的管线。
2)renderOrder();
这个方法先在代码中注释掉了,看一下“糊了的”效果:
在这里插入图片描述

如果没有设置renderOrder();属性的 ,管线的渲染层级没有building高 ,就会导致有被building遮盖的PolygonLine无法正常显示,设置renderOrder();属性后,渲染效果正常。

所以这才是“正确显示”的效果:
在这里插入图片描述
最后一步,创建出电线以及燃气线,效果如下:
在这里插入图片描述
地下管网的管理水平是体现一个城市的发展程度和现代化管理的重要标志之一。三维管线可视化系统的建立便于相关职能部门准确地掌握城市地下管线现状,有助于避免市政建设中道路的多次开挖,大大降低了施工中地下设施的矛盾与事故隐患。

ThingJS是一种轻量级前端应用3D框架,通过WebGL技术API接口,可实现跨终端跨平台的访问,使得管理中心与外部移动端能够交互协作,促进地下管线管理手段快速发展。

在这里插入图片描述

相关文章
|
监控 数据可视化 安全
如何使用webgl(three.js)实现煤矿隧道、井下人员定位、掘进面、纵采面可视化解决方案——第十九课(一)
three.js、webgl、3D煤矿隧道、三维井下人员定位、掘进面三维可视化、纵采面可视化、采集面可视化展示、设备检测、数字孪生、物联网3D、3d建筑、3d库房,bim管理系统
322 1
|
7月前
|
存储 数据可视化 关系型数据库
管线GIS系统实战
管线GIS系统实战
108 5
|
缓存 数据可视化 定位技术
虚幻引擎UE4加载GIS数据《数字孪生&智慧城市》
😁🏆,在本文中,作者通过SuperMap对UE插件尝试了GIS数据的本地与离线导入,并详细介绍了环境配置流程,这也是为将来数字孪生城市的尝试!!!
708 0
|
数据可视化 物联网 程序员
使用webgl(three.js)搭建一个3D智慧园区、3D建筑,3D消防模拟,web版3D,bim管理系统——第四课(炫酷版一)
3d建筑,3d消防,消防演习模拟,3d库房,3d档案室,3d密集架,webGL,threejs,3d机房,bim管理系统
5746 0
|
传感器 存储 JSON
智慧养殖,三维可视化解决方案
智慧养殖,三维可视化解决方案
600 0
智慧养殖,三维可视化解决方案
|
存储 开发框架 监控
全景虚拟漫游技术实现(three.js vs ThingJS) Javascript 3D开发 前端 物联网 webgl 三维建模 3D模型 虚拟 全景
在全景虚拟漫游场景上实现3D动效,ThingJS vs three.js开发性能和资源投入将会如何呢?
 全景虚拟漫游技术实现(three.js vs ThingJS) Javascript 3D开发 前端 物联网 webgl 三维建模 3D模型 虚拟 全景
|
运维 监控 数据可视化
基于WebGL的三维交通监控可视化技术应用(实践版) ThingJS
互联网技术为交通行业的可视化带来了多样性的发展。从传统的二维平面变形图、二维SVG矢量图到如今的SVG三维矢量技术、BIM技术、GIS+BIM技术、 WebGL技术,甚至连AR、VR、MR等虚拟现实技术,也开始应用于交通领域的可视化发展方面。
|
传感器 监控 数据可视化
基于WebGL的仓储粮食温度可视化 ThingJS
为了控制谷物储藏温度,需要创造一个不利于虫霉生长低温环境的储粮技术环境,然而出于成本考虑以及进出粮的需要,粮堆内的温度传感器设置数量有限,因此在储粮当中测得的温度值只是传感器附近的温度,其他部分则需要利用相应的方法进行数值模拟。
基于WebGL的仓储粮食温度可视化 ThingJS
|
存储 JSON 运维
基于WebGL的3D可视化告警系统关键技术解析 ThingJS
1. WebGL 3D技术 2. 新一代3D框架-ThingJS 3. 3D可视化告警系统案例 4. 基于ThingJS的通用架构设计
1款3D地图实景开发工具,JS前端工程师轻松构建 ThingJS 3D地图 全景 可视化
ThingJS是市场上1款3D软件开发方法,为了创业项目团队的拓展,更应保证做到普适化,这是轻量化研发设计3D地图可视化的核心价值。 先来看看ThingJS-CityBuilder城市地图可视化的郊果。
1款3D地图实景开发工具,JS前端工程师轻松构建 ThingJS 3D地图 全景 可视化