//漫游--绘制路线
|
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: '<i class="iconfont icon-manyou i-item" style="font-size: 18px; color: white;"></i> ' + "漫游飞行",
|
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: '<i class="iconfont icon-manyou i-item" style="font-size: 18px; color: white;"></i>' + '漫游路径绘制',
|
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: '<i class="iconfont icon-manyou i-item" style="font-size: 18px; color: white;"></i>' + "漫游路线",
|
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();
|
}
|
});
|
});
|
}
|