let data = [];
data[0] = [{
longitude: 116.405419,
latitude: 39.918034,
height: 0,
time: 0
}, {
longitude: 116.405419,
latitude: 39.918034,
height: 0,
time: 40
}, {
longitude: 116.2821,
latitude: 39.918145,
height: 0,
time: 70
}, {
longitude: 115.497402,
latitude: 39.344641,
height: 70000,
time: 100
}, {
longitude: 107.942392,
latitude: 29.559967,
height: 70000,
time: 280
}, {
longitude: 106.549265,
latitude: 29.559967,
height: 0,
time: 360
}];
data[1] = [{
longitude: 115.497402,
latitude: 39.918034,
height: 0,
time: 0
}, {
longitude: 115.497402,
latitude: 39.918034,
height: 0,
time: 100
}, {
longitude: 115.497402,
latitude: 39.918034,
height: 10,
time: 120
}, {
longitude: 117.034586,
latitude: 39.881202,
height: 0,
time: 140
}, {
longitude: 116.340088,
latitude: 38.842224,
height: 70000,
time: 200
}, {
longitude: 113.489176,
latitude: 23.464017,
height: 70000,
time: 280
}, {
longitude: 113.262084,
latitude: 23.13901,
height: 0,
time: 360
}];
data[2] = [{
longitude: 118.838979,
latitude: 32.073514,
height: 0,
time: 0
}, {
longitude: 118.838979,
latitude: 32.073514,
height: 0,
time: 20
}, {
longitude: 118.838979,
latitude: 32.073514,
height: 0,
time: 200
}, {
longitude: 118.438838,
latitude: 32.03777,
height: 0,
time: 240
}, {
longitude: 117.802406,
latitude: 31.91231,
height: 70000,
time: 280
}, {
longitude: 104.043645,
latitude: 35.993845,
height: 70000,
time: 300
}, {
longitude: 101.807224,
latitude: 36.660972,
height: 0,
time: 320
}];
for (let i = 0; i < data.length; i++) {
let property = cm.computeFlight(data[i]);
var pos = { longitude: data[i][0].longitude, latitude: data[i][0].latitude, height: data[i][0].height }
let planeModel = cm.CreateSingleModel(pos, "model" + i, '../Apps/SampleData/models/CesiumAir/Cesium_Air.glb', 64);
planeModel.position = property;
planeModel.orientation = new Cesium.VelocityOrientationProperty(property);
}
//创建model
this.CreateSingleModel = function (position, id, modelurl, minimumPixelSize) {
let mode = this.viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(position.longitude, position.latitude, position.height),
id: id,
model: {
uri: modelurl,
minimumPixelSize: minimumPixelSize,
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 100000000),
},
availability:new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
start: viewer.clock.startTime,
stop: viewer.clock.stopTime
})]),
path: {
leadTime: 0,
trailTime: 360,
resolution: 1,
material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 1,
color: Cesium.Color.YELLOW,
}),
width: 1,
show: true
},
})
//console.log("点:", point.label);
return mode;
}
//计算飞行
//@param source 数据坐标
//@returns {SampledPositionProperty}
this.computeFlight= function (source) {
// 取样位置 相当于一个集合
let property = new Cesium.SampledPositionProperty();
for (let i = 0; i < source.length; i++) {
let time = Cesium.JulianDate.addSeconds(start, source[i].time, new Cesium.JulianDate());
let position = Cesium.Cartesian3.fromDegrees(source[i].longitude, source[i].latitude, source[i].height);
// 添加位置,和时间对应
property.addSample(time, position);
}
return property;
}
//清除单个模型
this.ClearModel = function (mode) {
this.viewer.entities.remove(mode);//清除所有
//var de = viewer.entities.getById("point001");
//viewer.entities.remove(de);
}