//漫游--绘制路线 function roamDraw() { var options = { 'viewer': viewer, 'polylinecolor': new Cesium.Color.fromBytes(255, 124, 0, 255), //线的颜色) 'pointcolor': Cesium.Color.WHITE, //画线时次点的颜色 'printId': 'roamLine', 'roamHeight': Number(0.0),//默认500M }; CesiumRoam.drawRoamDraw(options); } //显示漫游路线 function showRoamLine(lines) { var options = { 'viewer': viewer, 'lines': lines, 'polylinecolor': new Cesium.Color.fromBytes(255, 124, 0, 255), //线的颜色) 'pointcolor': Cesium.Color.WHITE, //画线时次点的颜色 'roamHeight': Number(100.0),//默认500M }; CesiumRoam.showRoamLine(options); } //清除漫游路线 function roamDrawClean() { var options = { 'viewer': viewer, 'polylinecolor': new Cesium.Color.fromBytes(255, 124, 0, 255), //线的颜色) 'pointcolor': Cesium.Color.WHITE, //画线时次点的颜色 'printId': 'roamLine', 'roamHeight': Number(100.0),//默认500M } CesiumRoam.drawRoamClean(options); } //漫游飞行 function roamFly() { modeluri = "../assets/models/UAV.glb"; //modeluri = "../assets/models/xiaofangyuan-run.gltf"; modelscale = 6; var isPathShow = true; var isRe = true; var roamIsmodelshow = true; var options = { 'viewer': viewer, 'modeluri': modeluri, 'scale': modelscale, 'lines': CesiumRoam.lines, 'isPathShow': isPathShow, 'isRe': isRe, 'roamIsmodelshow': roamIsmodelshow, 'speed': Number(800), 'type': '折线', }; //stopRoaming(); viewer.clock.shouldAnimate = true;//需要开启 clock shouldAnimate 属性 负责不会飞行 CesiumRoam.initRoaming(options); } //漫游模型及参数 var models = [ { 'url': "../assets/models/qiche.gltf", 'modelscale': 0, 'roamIsmodelshow': true }, { 'url': "../assets/models/walk.gltf", 'modelscale': 4, 'roamIsmodelshow': true }, { 'url': "../assets/models/qiche.gltf", 'modelscale': 0.1, 'roamIsmodelshow': true }, { 'url': "../assets/models/UAV.glb", 'modelscale': 0.1, 'roamIsmodelshow': true } ] //带参数的漫游飞行 function roamFly2(data) { let model = models[data.modeltype - 1]; var options = { 'viewer': viewer, 'modeluri': model.url, 'scale': model.modelscale, 'lines': data.lines, 'isPathShow': data.showlines, 'isRe': data.reloop, 'roamIsmodelshow': model.roamIsmodelshow, 'speed': Number(800), 'type': '折线', 'ontheground': data.ontheground, }; viewer.clock.shouldAnimate = true;//需要开启 clock shouldAnimate 属性 负责不会飞行 CesiumRoam.initRoaming(options); } //修改漫游设置 function roamSettingChange(options) { options.viewer = viewer; CesiumRoam.ChangeRoamingSetting(options); } //结束漫游 function stopRoaming() { CesiumRoam.EndRoaming(viewer); } var roamData = { //数据 "list": [{ "name": "预设轨迹", "lines": "114.53836273034896,38.00039331211704,153.00913091160308,114.53675083313561,37.99913904663243,148.8441307249287,114.53693864410401,37.99726980815997,149.97794017557146,114.5388775477768,37.99617034897775,150.0931846567538,114.54151503045546,37.99624273198715,152.76414965599372,114.54306394123357,37.99746809717264,153.64383252744818,114.54278976236779,37.99915136617812,151.8990943270027,114.5405325034151,38.00028459715921,153.81891784625202,114.53856752601202,38.000386426715586,152.02134046421168", 'modeltype': Number(4), 'ontheground': false, 'showline': true, 'projection': false, 'reloop': true }] }; //漫游管理面板 function roamControl() { layui.use(['element', 'layer', 'form', 'upload', 'tree', 'util'], function () { var layer = layui.layer; layer.config({ extend: 'myskin/style.css' //同样需要先加载新皮肤 }); layer.closeAll();//首先关闭所有的弹窗 layer.open({ type: 2, title: ' ' + "漫游飞行", maxmin: true, skin: 'layer-ext-myskin', shade: 0, maxmin: false, scrollbar: false, shadeClose: true, //点击遮罩关闭层 offset: [layerPageStyle.offsetX, layerPageStyle.offsetY], area: ['300px', '600px'], resize: false, content: 'project/roamControl.html', success: function (layero, index) { roamPage = window[layero.find('iframe')[0]['name']]; } }); }); } //修改漫游数据 function roamDrawConfirm(listIndex) { if (roamDrawPage != undefined) { let data = roamDrawPage.data; data.lines = String(CesiumRoam.drawLines); if (listIndex > -1) { roamData.list[listIndex] = JSON.parse(JSON.stringify(data)); } else { roamData.list.push(data); } } }; //漫游绘制/数据面板 function drawRoamLine(listIndex) { layui.use(['element', 'layer', 'form', 'upload', 'tree', 'util'], function () { var layer = layui.layer; layer.config({ extend: 'myskin/style.css' //同样需要先加载新皮肤 }); layer.closeAll();//首先关闭所有的弹窗 layer.open({ type: 2, title: '' + '漫游路径绘制', maxmin: true, skin: 'layer-ext-myskin', shade: 0, maxmin: false, scrollbar: false, shadeClose: true, offset: [layerPageStyle.offsetX, layerPageStyle.offsetY], area: ['240px', '340px'], resize: false, content: 'project/roamDrawConfirm.html', end: function (index, layero) { roamDrawClean(); roamDrawPage = undefined; }, success: function (layero, index) { roamDrawPage = window[layero.find('iframe')[0]['name']]; roamDrawPage.listIndex = listIndex; roamDrawPage.layerIndex = index; if (listIndex > -1) { roamDrawPage.data = JSON.parse(JSON.stringify(roamData.list[listIndex])); roamDrawPage.update(); showRoamLine(roamData.list[listIndex].lines); } else { roamDraw(); } } }); }); } //漫游飞行面板 function roamFlyPanel(name) { layui.use(['element', 'layer', 'form', 'upload', 'tree', 'util'], function () { var layer = layui.layer; layer.config({ extend: 'myskin/style.css' //同样需要先加载新皮肤 }); layer.closeAll();//首先关闭所有的弹窗 layer.open({ type: 2, title: '' + "漫游路线", maxmin: true, skin: 'layer-ext-myskin', shade: 0, maxmin: false, scrollbar: false, shadeClose: true, //点击遮罩关闭层 offset: [layerPageStyle.offsetX, layerPageStyle.offsetY], area: ['240px', '300px'], resize: false, content: 'project/roamFlyPanel.html', success: function (layero, index) { roamFlyPage = window[layero.find('iframe')[0]['name']]; roamFlyPage.document.getElementById('name').innerHTML = name; roamFlyPage.layerIndex = index; }, end: function (index, layero) { roamFlyPage = undefined; stopRoaming(); } }); }); }