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

相关文章

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S