Commit e22378a3 by jlc

update:车案例的修改

parent e03fa3b8
src/assets/Vehicle.png

422 KB | W: | H:

src/assets/Vehicle.png

231 KB | W: | H:

src/assets/Vehicle.png
src/assets/Vehicle.png
src/assets/Vehicle.png
src/assets/Vehicle.png
  • 2-up
  • Swipe
  • Onion skin
export function addVehicle(viewer) {
const czml = [
{
id: "document",
name: "Vehicle",
version: "1.0",
clock: {
interval: "2019-08-28T04:00:00Z/2019-08-28T04:20:00Z",
currentTime: "2019-08-28T04:00:00.00Z",
multiplier: 1,
range: "LOOP_STOP",
step: "SYSTEM_CLOCK_MULTIPLIER"
// 定义开始时间
let start = Cesium.JulianDate.fromDate(new Date()); // 设置时间轴当前时间为开始时间
start = Cesium.JulianDate.addHours(start, 8, new Cesium.JulianDate()); // 开始时间加8小时改为北京时间
let stop = Cesium.JulianDate.addSeconds(start, 400, new Cesium.JulianDate()); // 设置结束时间为开始时间加400秒
viewer.clock.startTime = start.clone(); // 设置时钟开始时间
viewer.clock.currentTime = start.clone(); // 设置时钟当前时间
viewer.clock.stopTime = stop.clone(); // 设置时钟结束时间
viewer.clock.multiplier = 10; // 设置时间倍数
viewer.timeline.zoomTo(start, stop); // 时间轴绑定到viewer上去
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; // 循环执行,到达终止时间,重新从起点时间开始
function computeFlight(source) {
var property = new Cesium.SampledPositionProperty();
for(var i = 0; i < source.length; i++) {
var time = Cesium.JulianDate.addSeconds(start, source[i].time, new Cesium.JulianDate ());
var position =Cesium.Cartesian3.fromDegrees(source[i].longitude, source[i].latitude, source[i].height);
property.addSample(time,position);
}
},
{
id: "path",
name: "path for Vehicle",
description: "<p>this is a description</p>",
availability: "2019-08-28T04:00:00Z/2019-08-28T04:20:00Z",
path: {
material: {
polylineOutline: {
color: {
rgba: [255, 0, 255, 255],
},
outlineColor: {
rgba: [0, 255, 255, 255],
},
outlineWidth: 5
},
},
width: 8, // 折线宽度
leadTime: 5,
trailTime: 50000,
resolution: 5,
},
orientation: {
"velocityReference": "#position"
},
model: {
gltf: 'https://raw.githubusercontent.com/jinlinchao123/Cesium-assets/main/3Dmodel/CesiumMilkTruck.glb',
minimumPixelSize: 128,
},
position: {
epoch: "2019-08-28T04:00:00.00Z",
cartographicDegrees: [
0, 120, 30, 0,
1200, 121, 30, 0
]
return property;
}
},
let data = [
{ longitude:108.95847801120208, latitude:34.21765422118126, height: -3.948, time: 0 },
{ longitude:108.95849254781227, latitude:34.21800309998983, height: -3.839, time: 100 },
{ longitude:108.9594164044393, latitude:34.21802855891169, height: -2.579, time: 200 },
];
var dataSourcePromise = viewer.dataSources.add(Cesium.CzmlDataSource.load(czml));
dataSourcePromise.then(function (dataSource) {
// 根据模型所在的实体去进行加载
viewer.trackedEntity = dataSource.entities.getById('path');
}).catch(function (error) {
console.error(error);
let property = computeFlight(data);
// 添加模型
let entityCar = viewer.entities.add({
id: "car",
availability: new Cesium.TimeIntervalCollection([ //要添加到集合中的间隔数组
new Cesium.TimeInterval({start: start, stop: stop}),
]),
position: property,
path: {
resolution: 1,
leadTime: 0,
trailTime: 200,
material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.1,
color: Cesium.Color.ORANGE
}),
width: 10
},
orientation: new Cesium.VelocityOrientationProperty(property), // 根据速度计算方向角
model: {
uri:'https://raw.githubusercontent.com/jinlinchao123/Cesium-assets/main/3Dmodel/CesiumMilkTruck.glb',
minimumPixelSize: 2,
}
});
viewer.trackedEntity = entityCar; // 视角跟随模型
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment