new MMSDT.addOrDellModel

根据路线添加删除移动目标模型

目标动画模型的实时添加、删除、并按路径运动

参数

new MMSDT.addOrDellModel( parameter, callPosition)

parameter = {
model: ['models/man/hongren.gltf', 'models/man/lvren.gltf'], //需要添加的定位模型
icon: ['textures/line3.png','textures/line1.png'], //显示图标
scale: 20, //三维模型缩放大小
rotation: Math.PI*0.5, //面向前,旋转偏移
speed: 0.8, //移动速度
height: 20, //图标相对高度
size: 0.8, //图标缩放大小
}

callPosition( positions ): 回调函数,返回参数模型的三维坐标

属性

.add(list,array)

添加模型

list:调用模型的序号

array:运动路径的数组,三维向量

.remove()

删除所有本函数添加的模型

代码示例

var eventMouse = []; var onMove = []; var outMove = function(){ } var onDown = []; var onDouble = []; var moveColor = []; function goBack( dateJson ){} //构建函数监听鼠标事件 MMSDT.mouseEvent( eventMouse, onMove, outMove, onDown, onDouble, moveColor, false, false, goBack ); //需要生成的路线样式1 var lineStyle1 = { texture: [dirUrl+"textures/line1.png"], //指定贴图箭头 repeat: 20, //贴图密度 speed: 0.2, //流动速度,数字越大越快 high: 0.5, //相对坐标点的高度 width: 4, //线条宽度 closed: false, //线条是否封口 help: false, //是否显示辅助线 tension: 0.3, //线条张力(转折点的圆滑度) }; //需要生成的路线样式2 var lineStyle2 = { texture: [dirUrl+"textures/line2.png"], //指定贴图箭头 repeat: 20, //贴图密度 speed: 0.2, //流动速度,数字越大越快 high: 0.5, //相对坐标点的高度 width: 3, //线条宽度 closed: false, //线条是否封口 help: false, //是否显示辅助线 tension: 0.3, //线条张力(转折点的圆滑度) }; //需要生成的路线样式3 var lineStyle3 = { texture: [dirUrl+"textures/line3.png"], //指定贴图箭头 repeat: 20, //贴图密度 speed: 0.2, //流动速度,数字越大越快 high: 0.5, //相对坐标点的高度 width: 4, //线条宽度 closed: false, //线条是否封口 help: false, //是否显示辅助线 tension: 0.3, //线条张力(转折点的圆滑度) }; var lines=[], lineList=-1; //线条及数量 //添加定位模型 var setting = { model: ['models/man/hongren.gltf', 'models/man/lvren.gltf'], //需要添加的定位模型 icon: ['textures/line3.png','textures/line1.png'], //显示图标 scale: 20, //三维模型缩放大小 rotation: Math.PI*0.5, //面向前,旋转偏移 speed: 0.8, //移动速度 height: 20, //图标相对高度 size: 0.8, //图标缩放大小 } var aodm = new MMSDT.addOrDellModel( setting, callPosition ); //回调函数,模型的实时坐标 function callPosition( positions ){ for( var i=0; i < positions.length; i++ ){ if( positions[i][3] == "9527" ){ let vector = MMSDT.mapped3to2( positions[i] ); document.getElementById("info").style.display = "block"; //显示div document.getElementById("info2").innerHTML = "路线信息<br>ID号:" + positions[i][3] + "<br>消防救援路线"; document.getElementById("info").style.bottom = vector.y + 100 + "px"; //实时刷新二维div document.getElementById("info").style.left = vector.x -85 + "px"; } } } //鼠标右键绘制路线 var parameter = { color: 0x00ff00, //画线颜色 high: 0.5, //相对坐标点的高度 size: 1.5, //点的大小 tension: 0.3, //线条张力(转折点的圆滑度) } var startDraw = new MMSDT.drawPath( parameter ); //默认鼠标右键绘制,须鼠标监听开启 //使用MMAPI类,自定义外部函数接口 //开始画线 MMAPI.beginDraw = function(){ alert("使用鼠标右键:点击地面画线"); //调用构建函数的开始属性 startDraw.start(); } //结束画线 MMAPI.endDraw = function(list){ //调用构建函数的结束属性,并返回坐标点的值 var getArray = startDraw.end(); //重新格式化坐标点,把三维向量格式转成数组格式 var paths=[]; paths[0]=[]; for( var i=0; i < getArray.length; i++ ){ paths[0].push( [getArray[i].x, getArray[i].y, getArray[i].z] ); } //画线 if( paths[0].length > 1){ lineList++; if( list == 1 ){ lines[lineList] = new MMSDT.initDrawPath( paths, lineStyle1 ); //样式1(调用路线的构建函数)(路径,样式) aodm.add(1,getArray); //添加小人(小人样式,路径) }else if( list == 2 ){ lines[lineList] = new MMSDT.initDrawPath( paths, lineStyle2 ); //样式2(调用路线的构建函数)(路径,样式) aodm.add(0,getArray); //添加小人(小人样式,路径) }else if( list == 3 ){ lines[lineList] = new MMSDT.initDrawPath( paths, lineStyle3 ); //样式3(调用路线的构建函数)(路径,样式) aodm.add(0,getArray, "9527"); //添加小人(小人样式,路径,赋予id号) } } } //删除路线 MMAPI.delDraw = function(){ aodm.remove(); //删除人物 for( var i=0; i <= lineList; i++ ){ lines[i].remove(); //删除线条 } lineList=0; document.getElementById("info").style.display = "none"; //隐藏div }

在线演示