基于ThingJS开发的WebGL H5停车场三维可视化管理Demo

2023-11-11 09:59

本文主要是介绍基于ThingJS开发的WebGL H5停车场三维可视化管理Demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

随着社会的发展,城市中的汽车越来越多。车辆集中存放管理的场所被人类提出车辆进出的秩序、车辆存放的安全性、车辆存放管理的有偿性等要求。停车场系统应用现代机械电子及通讯科学技术,集控制硬件、软件于一体。随着科技的发展,停车场管理系统也日新月异,目前最为专业化的停车场系统为免取卡停车场。下面我们就用ThingJs平台来搭建一个3d可视化的停车场管理系统。

点击查看:DEMO 

 

效果

停车场总览

车辆信息

车辆行动轨迹监控

车位信息展示

下面我们就用ThingJs平台来搭建一个3d可视化的停车场管理系统。

第一步

使用CampusBuilder来搭建一个模拟停车场。CampusBuider很好用在以往的文章中也多次提及过,丰富的模型库任你选择快速搭建3D场景。

第二步

初始化摄像机的位置并添加鼠标滑过,左键单击,右键单击,左键双击等事件。鼠标滑过,车勾边变红色,车位勾边边蓝色。左键单击,车或车位弹出信息牌。右键单击,关闭当前信息牌,镜头初始化。getCarData() 与 getParkData() 为模拟数据,没有几个售出的车位和车就用了switch。

app.on('load', function (evt) {//初始化摄像机init_camera();//滑过勾边var campus = evt.campus;var objs = app.query('.Building').add(campus.things);objs.on('mouseon', function (ev) {if (ev.object.name.search("car") == 0) {this.style.outlineColor = '#ff0000';}if (ev.object.name.search("park") == 0) {this.style.outlineColor = '#0000ff';}});objs.on('mouseoff', function () {this.style.outlineColor = null;});//单击事件app.on('click', function (ev) {if (ev.button == 2) {destroy_ui();init_camera();}if (ev.object.name.search("car") == 0) {destroy_ui();getCarData(ev.object);create_ui_car();}if (ev.object.name.search("park") == 0) {destroy_ui();getParkData(ev.object);create_ui_park();}});//双击事件app.on('dblclick', function (ev) {if (ev.object.name.search("car") == 0) {app.camera.flyTo({'time': 1500,'object': ev.object,'position': [0, 0, 0],'complete': function () {}});}if (ev.object.name.search("park") == 0) {app.camera.flyTo({'time': 1500,'object': ev.object,'position': [0, 5, 0],'complete': function () {}});}});
});//初始化摄像机
function init_camera() {// 摄像机飞行到某位置app.camera.flyTo({'position': [-67.95670997548082, 49.69517426520041, -42.88366089402964],'target': [-7.188588318222256, 14.094194791658271, -12.724756207211417],'time': 800,'complete': function () {console.log("Camera ready");}});
}
//创建面板
var panel;
var dataObj;
var carInfo;
var parkInfo;function create_ui_car() {panel = new THING.widget.Panel({titleText: "车辆信息",closeIcon: true, // 是否有关闭按钮dragable: true,retractable: true,opacity: 0.9,hasTitle: true,titleImage: 'https://www.thingjs.com/static/images/example/icon.png'});panel.position = [0, 326];// 创建任意对象dataObj = {name: carInfo[0],info: carInfo[1],park: carInfo[2],plateNum: carInfo[3],state: carInfo[4],contactNum: carInfo[5]};// 动态绑定物体var name = panel.addString(dataObj, 'name').caption('车主姓名');var info = panel.addString(dataObj, 'info').caption('车主信息');var park = panel.addString(dataObj, 'park').caption('车位编号');var plateNum = panel.addString(dataO

这篇关于基于ThingJS开发的WebGL H5停车场三维可视化管理Demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389261

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图