Cesium數據可視化-倉儲調度系統可視化部分(附github源碼)


Cesium數據可視化-倉儲調度系統可視化部分

目的

倉儲調度系統需要一個可視化展示物資運輸實況的界面,需要配合GPS設備發送的位置信息,實時繪制物資運輸情況和倉儲倉庫。因此,使用Cesium可視化該數據。

說明

這只是開發過程中的原型系統。

原理簡介

點,線,圖片的繪制就不細說了。

動態點繪制是利用Entity的position屬性可以制定某時間點的出現位置,形成動畫效果。

核心代碼如下:

/**
* 計算 property
* @param source
* @returns {SampledPositionProperty|*}
*/
function computeFlight(source) {
// 取樣位置 相當於一個集合
var property = new Cesium.SampledPositionProperty();
property.setInterpolationOptions({
interpolationAlgorithm: Cesium.LagrangePolynomialApproximation,
interpolationDegree: 2
});
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].dimension, source[i].height);
// 添加位置,和時間對應
property.addSample(time, position);
}
return property;
}
// 動態點
viewer.entities.add({
position: property,
name: "復興號",
description: "運載量:100t",
path: {
show: true,
leadTime: 0,
trailTime: 10,
width: 5,
resolution: 5,
material: new Cesium.PolylineOutlineMaterialProperty({
color: Cesium.Color.fromAlpha(Cesium.Color.RED, 1),
outlineWidth: 1,
outlineColor: Cesium.Color.red
})
},
availability: new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
start: Cesium.JulianDate.addSeconds(start, data[j][0].time, new Cesium.JulianDate),
stop: Cesium.JulianDate.addSeconds(start, data[j][data[j].length - 1].time, new Cesium.JulianDate),
isStartIncluded: true,
isStopIncluded: false,
data: Cesium.Cartesian3.fromDegrees(110, 39)
})]
)
});

具體詳情讀源碼即可

更多詳情見下面鏈接文章

GIS之家小專欄此文章:Cesium數據可視化-倉儲調度系統可視化部分(附源碼下載)

文章提供源碼,對本專欄感興趣的話,可以關注一波


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM