CZML是一种用来描述动态场景的JSON架构的语言,主要用于Cesium在浏览器中的展示。通过制作CZML文件,在Cesium进行数据的批量加载,省去单独循环一个一个加载对象的方式。
下边是一个简单的模型CZML文件的配置:
CZML是数组形式的JSON文件,首先有一个根节点,里边是id、name和version,修改的时候,只需要设置名称就行。
下边每个对象是一个模型的参数配置:
id必须是唯一的,name可以有相同的,properties里边可以加一些自定义的属性数据,position是模型的位置信息,orientation是模型的转角信息(heading、pitch、roll),model是模型的路径,比例等参数配置。
其中orientation需要根据模型坐标和转角进行计算,算出来一个4个元素的数组,代码如下:
let position = Cesium.Cartesian3.fromDegrees(evdata.x, evdata.y, evdata.height);
let heading = Cesium.Math.toRadians(evdata.heading);
let pitch = evdata.pitch;
let roll = 0;
let hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
let orentation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
//模型的czml样式文件
[
{
"id": "document",
"name": "name",
"version": "1.0"
},
{
"id": "uid1",
"name": "uid",
"properties": {
"status": "use"
},
"position": {
"cartographicDegrees": [
116.119,
39.1112,
1.01
]
},
"orientation": {
"unitQuaternion": [0,0,0,0]
},
"model": {
"gltf": "模型路径",
"scale": 1.0,
"minimumPixelSize": 16
}
}]