new MMSDT.pauseEvent

基于相机位置的事件判断

相机运动到指定的关键点时候,可执行自定义的相关操作。

常用到自动巡检中,在关键点位暂停、弹出信息框等。

参数

new MMSDT.pauseEvent( parameter, callback )

parameter: [{
[-96,0,44],
[-44,0,34],
[5,0,145]
], //数组,关键点坐标
scopes: 6, //检测范围距离
}

callback: 回调函数,每到达一个点位,回调位置点位序号

属性

.onOff( Boolean )

布尔值,是否开启位置监听

代码示例

//自动巡游, 位置监听 var autoCruise, eventPause; //读取巡检路径 MMSDT.getJson( dirUrl+"models/paths2.json", callback); //回调路径json function callback( dateJson ){ //自动巡检 var parameters = { model: 'models/fly.gltf', //三维模型 scale: 0.0015, //三维模型缩放大小 rotation: Math.PI, //模型面向前,旋转偏移 distance: 6, //默认镜头与中心模型的距离 height: 1.5, //默认镜头与中心点的高度 speed: 0.3, //巡游速度 veer: 0.3, //镜头转向速度 repetition: true, //一圈后是否重复 } autoCruise = new MMSDT.routingInspection( dateJson, parameters, cruiseEnd ); //初始化自动巡检 function cruiseEnd(){ //巡检完成 MMSDT.cameraTarget([0,0,0], [-224,108,47], 1000 ); //镜头复位 MMSDT.controlsTarget( [0,0,0], 400, 1000 ); //控制器复位 controls.maxPolarAngle = Math.PI*0.498; controls.minPolarAngle = Math.PI*0.35; } ////////////////////////////////////////////////////////////////////////////////////////////////// //基于相机位置的事件判断 var parameter2 = { positions: dateJson.path, //数组,关键点坐标 scopes: 6, //检测范围 } eventPause = new MMSDT.pauseEvent( parameter2, callback ); //构建函数初始化 //回调函数,到达某个关键点 function callback(list){ //显示div document.getElementById("info").style.display = "block"; document.getElementById("info2").innerHTML = "巡检暂停" + "
当前点位序号:" + list + "
3秒后恢复"; //暂停巡游 autoCruise.onOff( false ); setTimeout(function(){ document.getElementById("info2").innerHTML = "巡检暂停" + "
当前点位序号:" + list + "
2秒后恢复"; },1000); setTimeout(function(){ document.getElementById("info2").innerHTML = "巡检暂停" + "
当前点位序号:" + list + "
1秒后恢复"; },2000); setTimeout(function(){ document.getElementById("info2").innerHTML = "巡检暂停" + "
当前点位序号:" + list + "
0秒后恢复"; },3000); //暂停3秒后继续 setTimeout(function(){ autoCruise.onOff( true ); document.getElementById("info").style.display = "none"; },4000); } } //使用MMAPI类,自定义外部函数接口 MMAPI.startCruise = function(){ autoCruise.onOff( true ); //开启自动巡游 models[1].visible = true; } MMAPI.person1 = function(){ autoCruise.person( 1 ); //第一人称视角 } MMAPI.person3 = function(){ autoCruise.person( 3 ); //第三人称视角 } MMAPI.stop = function(){ autoCruise.stop(); //停止巡游 } MMAPI.onOff = function(value){ eventPause.onOff = value; //布尔值,是否开启关键点监听 }

在线演示