基于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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键