//漫游--绘制路线
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();
}
});
});
}