czml是一种用来描述动态场景的JSON架构语言,主要用于Cesium数据与程序分离,就如同Google Earth和KML的关系。采用数据驱动的方式,不用写代码即可构建丰富的动态场景。
一个CZML文档包含一个JSON数组,数组中每一个对象都是一个CZML数据包(packket),一个packet对应一个场景中的对象,例如一个飞机。
Cesium.CzmlDataSource.load可以加载czml对象或者czml文档的url
CZML比较特殊的是跟时间序列相关的属性。
var czml = [{
id: "document",
name: "czml car",
version: "1.0",
},
{
id: "carModel", //3d模型的id
name: "car on ground",
availability: "2012-08-04T16:00:00Z/2012-08-04T16:01:00Z", //czml路径动画总共需要的时间,这是个时间范围
model: {
gltf: "img/car01.glb", //3d模型 win10中有3D查看器,其中可找到模型做测试
scale: 4.0, //模型显示时是原始图的比例的多少
minimumPixelSize: 228,
},
position: {
epoch: "2012-08-04T16:00:00Z", //开始时间
cartographicDegrees: [ //路线的数组集合,4个元素为一组
// 第一个参数,为开始时间,第二个参数为 经度(WGS84),第三个参数为 纬度,第四个参数为 高度
0, 114.61993981613305, 38.810271080278774, 19,
60, 114.61780979082804, 38.81062262806864, 21
],
}
},
];
3D模型加载后默认为朝向X轴(正东);
更改czml中model的朝向为自定义position路线
// 模型
var car = viewer.dataSources.add(Cesium.CzmlDataSource.load(czml));
car.then(function(ds){
var s = ds.entities.getById("carModel");
s.orientation =new Cesium.VelocityOrientationProperty(s.position);
})
网友评论