当代现代化的推动大大的促进了智能化过程,但也提供了相对的安全风险。在传统式监管行业,2D数据可视化监管一般是根据Web前端技术完成的。运用ThingJS搭建了一个轻量的3D视觉效果情景,展现了一个智能化大型商场的数字孪生视觉效果情景,包含工作人员的即时部位,电子巡更的范畴,当场的可靠状况等。,进而协助形象化地掌握当今工作人员的安全防护情况。

电子巡更,也称之为周边电子防盗系统软件,监管防御力地区的运行状态。真正情景中的电子巡更系统应用于农牧业,养殖业,牢房,军事禁区等安全性比较敏感行业。在ThingJS的服务平台上,电子巡更指的是一个地区,应用了PolygonRegion特性。创建对象或实体模型并运行挪动作用后,就可以逐渐检验总体目标点是不是进到电子巡更地区,并分辨真伪表明警报回应。

电子围栏是什么功能-电子围栏十大国产品牌-第1张图片文中根据数字孪生数据可视化情景的搭建和实体模型的载入,标识符追踪定位码的完成,电子巡更和轨迹图的完成,了解怎样运用ThingJS完成简易的三维电子巡更数据可视化。

// 加上电子巡更 new THING.widget.Button('加上电子巡更', function() { // 组成不规则图形的点(取世界坐标系下的座标) points = [ [81, 0.5, 63], [81, 0.5, 52], [72, 0.5, 52], [72, 0.5, 63] ]; if (polygonMarker) { return; } // 建立电子巡更(地区) polygonMarker = app.create({ type: 'PolygonRegion', points: points, // 传到世界坐标系用点座标 style: { regionOpacity: .6, regionColor: '#3CF9DF', // 地区色调 lineColor: '#3CF9DF' // 线条色调 } }); // 设定始终在顶部表明 polygonMarker.style.alwaysOnTop = false; })电子围栏是什么功能-电子围栏十大国产品牌-第2张图片当人或物件考虑传出报警时,有俩种方法提示她们。一是雷区内护栏的色调发生了转变;二是显示器面版表明提醒信息内容,形象化监管总体目标点的挪动范畴。

详细的编码如下所示:

// 加上图片标注 new THING.widget.Button('加上图片标注', function() { var coord = [83, 0.5, 61]; if (marker1) { return; } // 建立总体目标点(marker) marker1 = app.create({ type: "Marker", id: "marker1", url: "/guide/examples/images/navigation/user.png", position: coord, size: 1 }) }) var point = [ [81, 63], [81, 52], [72, 52], [72, 63] ]; // 挪动图片标注 new THING.widget.Button('挪动图片标注', function() { var markerEndPoint = [68, 0.5, 55]; if (marker1 != null) { var moveState = marker1.getAttribute('moveState'); if (moveState == 'complete') { marker1.off('update', null, '监管图片标注'); return; } // 总体目标点挪动 marker1.moveTo({ position: markerEndPoint, // 挪动到终点站部位 time: 2 * 1000, orientToPath: true, // 沿途径方位 complete: function(ev) { marker1.off('update', null, '监管图片标注'); $('.warninfo1').css('display', 'none'); $('.warninfo2').css('display', 'block'); $('.warninfo3').css('display', 'none'); marker1.setAttribute('moveState', 'complete'); } }) } if (points != null) { // 监管图片标注是不是进到电子巡更地区 if (marker1 != null) { marker1.on('update', function() { if (polygonMarker != null) { var intoPolygonMarker = isInPolygon([marker1.position[0], marker1.position[2]], point); if (intoPolygonMarker) { polygonMarker.regionColor = '#a94442'; polygonMarker.lineColor = '#a94442' $('.warninfo1').css('display', 'block'); $('.warninfo2').css('display', 'none'); $('.warninfo3').css('display', 'none'); } else { polygonMarker.regionColor = '#3CF9DF'; polygonMarker.lineColor = '#3CF9DF' $('.warninfo1').css('display', 'none'); $('.warninfo2').css('display', 'none'); $('.warninfo3').css('display', 'block'); } } }, '监管图片标注') } } }) // 加上实体模型标明 new THING.widget.Button('加上实体模型标明', function() { //建立总体目标点(Obj) people = app.query('#worker')[0]; people.position = [83, 0.1, 56]; people.visible = true; people.scale = [1.5, 1.5, 1.5]; }) // 挪动实体模型标明 new THING.widget.Button('挪动实体模型标明', function() { var objEndPoint = [70, 0.1, 60]; if (people != null) { var moveState = people.getAttribute('moveState'); if (moveState == 'complete') { people.off('update', null, '监管图片标注'); return; } // 播放视频实体模型动漫 people.playAnimation({ name: '走', speed: 1, loopType: THING.LoopType.Repeat, }); // 实体模型挪动 people.moveTo({ position: objEndPoint, // 挪动到终点站部位 orientToPath: true, // 沿途径方位 time: 8 * 1000, complete: function(ev) { people.stopAnimation('走'); people.off('update', null, '监管实体模型标明'); $('.warninfo1').css('display', 'none'); $('.warninfo2').css('display', 'block'); $('.warninfo3').css('display', 'none'); people.setAttribute('moveState', 'complete'); } }) } if (points != null) { // 监管实体模型标明是不是进到电子巡更地区 if (people != null) { people.on('update', function() { if (polygonMarker != null) { var intoPolygonMarker = isInPolygon([people.position[0], people.position[2]], point); if (intoPolygonMarker) { polygonMarker.regionColor = '#a94442'; polygonMarker.lineColor = '#a94442' $('.warninfo1').css('display', 'block'); $('.warninfo2').css('display', 'none'); $('.warninfo3').css('display', 'none'); } else { polygonMarker.regionColor = '#3CF9DF'; polygonMarker.lineColor = '#3CF9DF' $('.warninfo1').css('display', 'none'); $('.warninfo2').css('display', 'none'); $('.warninfo3').css('display', 'block'); } } }, '监管实体模型标明') } } }) // 重设 new THING.widget.Button('重设', function() { if (polygonMarker) { polygonMarker.destroy(); polygonMarker = null; } if (marker1) { marker1.destroy(); marker1 = null; } if (people) { people.visible = false; people.setAttribute('moveState', null); } $('.warninfo1').css('display', 'none'); $('.warninfo1').css('display', 'none'); $('.warninfo1').css('display', 'block'); }) createTip(); // 建立提醒控制面板}); /** * 建立提醒控制面板 */ function createTip() { var html = ` 总体目标已进到护栏 抵达到达站 总体目标未进到护栏 `; $('#div2d').append($(html));} /** * 关掉提醒控制面板 */function fenClose() { $(".fencing").hide();}/** * 检验总体目标点是不是进到电子巡更地区 * @param {Array} checkPoint - 校检座标 * @param {Array} polygonPoints - 产生电子巡更的座标 * @returns {Boolean} true 或 false * @description 此方式仅分辨处在同一个水平的总体目标点是不是在范围内(只分辨座标x和z值), * 不考虑到二者当今离地相对高度(座标的y值) */function isInPolygon(checkPoint, polygonPoints) { var counter = 0; var i; var xinters; var p1, p2; var pointCount = polygonPoints.length; p1 = polygonPoints[0]; for (i = 1; i Math.min(p1[0], p2[0]) && checkPoint[0]

评论(0条)

刀客源码 游客评论