Ceisum实时获取后台数据 实时更新实体位置信息
var viewer = new Cesium.Viewer(‘cesiumContainer’, {infoBox : false,selectionIndicator : false,shadows : true,shouldAnimate : true});var positions = [];var poly = undefined;var entityArr=[];var PolyLin
var viewer = new Cesium.Viewer(‘cesiumContainer’, {
infoBox : false,
selectionIndicator : false,
shadows : true,
shouldAnimate : true
});
var positions = [];
var poly = undefined;
var entityArr=[];
var PolyLinePrimitive = (function(){
function _(positions){
this.options = {
polyline : {
show : true,
positions : [],
material : Cesium.Color.CORNFLOWERBLUE 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 ,
width : 5,
arcType : Cesium.ArcType.RHUMB,
}
};
this.positions = positions;
this._init();
}
_.prototype._init = function(){
var _self = this;
var _update = function(){
return _self.positions;
};
//实时更新polyline.positions
this.options.polyline.positions = new Cesium.CallbackProperty(_update,false);
viewer.entities.add(this.options);
entityArr.push(this.options)
};
return _;
})();
var czml2 = [{
“id”: “document”,
“name”:“CZML Path”,
“version”: “1.0”,
}, {
“id”: “path1”,
“name”: “path with GPS flight data”,
“description”: “
Hang gliding flight log data from Daniel H. Friedman.
Icon created by Larisa Skosyrska from the Noun Project
“availability”: “2012-08-04T10:00:00Z/2012-08-04T15:00:00Z”,
“billboard”:{
“image”:“data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zyw56m65a+85by5XzFfIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiDQoJIHk9IjBweCIgdmlld0JveD0iMCAwIDMyIDMyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMiAzMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe3N0cm9rZTojMDAwMEZGO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Qxe2ZpbGw6bm9uZTtzdHJva2U6IzAwMDBGRjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIxNS41LDUuMDQgMTIuNSwxMC4yMyAxOC41LDEwLjIzICIvPg0KPGxpbmUgY2xhc3M9InN0MSIgeDE9IjE1LjUiIHkxPSIxMC41IiB4Mj0iMTUuNSIgeTI9IjI2LjUiLz4NCjxsaW5lIGNsYXNzPSJzdDEiIHgxPSIxMi41IiB5MT0iMjYuNSIgeDI9IjE4LjUiIHkyPSIyNi41Ii8+DQo8bGluZSBjbGFzcz0ic3QxIiB4MT0iMTUuNSIgeTE9IjIwLjUiIHgyPSIxMi41IiB5Mj0iMjMuNSIvPg0KPGxpbmUgY2xhc3M9InN0MSIgeDE9IjE4LjUiIHkxPSIyMy41IiB4Mj0iMTUuNSIgeTI9IjIwLjUiLz4NCjwvc3ZnPg0K”,
“scale”:0.2
},
“position”: {
“cartographicDegrees”: [ 118.87826541800007, 30.956799, 0.0,]
}
}];
var c2 = new Cesium.CzmlDataSource();
viewer.dataSources.add(c2.load(czml2));
// 动态赋值
var i = 30.956799;
var a = 20;
var b=118.87826541800007;
var realTimeClData=setInterval(function() {
i+= 10.001*Math.random();
b+=10.001*Math.random();
a+= 10;
//图标:更新czml坐标
czml2[1].position.cartographicDegrees = [b,i,0];
c2.process(czml2);
//线:更新entities坐标
var cartesian =Cesium.Cartesian3.fromDegrees( b, i, 0);
if(positions.length == 0) {
positions.push(cartesian.clone());
positions.push(cartesian);
}
if(positions.length >= 2){
if (!Cesium.defined(poly)) {
poly = new PolyLinePrimitive(positions);
}else{
//positions.pop();
//cartesian.y += (1 + Math.random());
positions.push(cartesian);
//只展示5条坐标数据
//if(positions.length>5){
// positions.shift();
//}
console.log(positions.length,“positions”);
}
}
}, 1000);
Sandcastle.addToolbarButton(‘清除计时器’, function() {
clearInterval(realTimeClData);
});
二维展示
三维展示
多个实体运动:实时加载数据 更新位置信息
var viewer = new Cesium.Viewer(‘cesiumContainer’, {
infoBox : false,
selectionIndicator : false,
shadows : true,
shouldAnimate : true
});
var PolyLinePrimitive = (function(){
function _(positions){
this.options = {
polyline : {
show : true,
positions : [],
material : Cesium.Color.CORNFLOWERBLUE,
width : 1,
arcType : Cesium.ArcType.RHUMB,
}
};
this.positions = positions;
this._init();
}
_.prototype._init = function(){
var _self = this;
var _update = function(){
// 1秒将近100次的调用定义的positions数组,实时加载更新线的坐标位置!!!
return _self.positions;
};
//实时更新polyline.positions
this.options.polyline.positions = new Cesium.CallbackProperty(_update,false);
viewer.entities.add(this.options);

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)