点击查看:最新Cesium可视化系统实战视频课程
CZML(Cesium Language)是一种基于JSON的格式,用于在Cesium(一个开源的虚拟地球框架)中描述3D地理数据。CZML文件通常用于动态地显示位置、路径、对象的变化等数据。它允许表示从简单的静态数据到复杂的动态数据,并可以用于可视化地理空间数据(如卫星轨迹、物体移动、标记等)。下面是对给定CZML代码的详细讲解。
1. 第一部分:Document对象
{
"id": "document",
"version": "1.0",
"clock": {
"interval": "2018-07-19T15:18:00Z/2018-07-19T15:18:30Z",
"currentTime": "2018-07-19T15:18:00Z",
"multiplier": 2,
"range": "LOOP_STOP",
"step": "SYSTEM_CLOCK_MULTIPLIER"
}
}
id:
"document"
这是CZML文件的顶层对象,通常用来包含元数据和全局配置。version:
"1.0"
指定了CZML文件的版本。在这个案例中,文件版本为1.0。clock: 这个部分定义了时间控制设置。
-
interval:
"2018-07-19T15:18:00Z/2018-07-19T15:18:30Z"
– 这是CZML时间的有效区间,表示文件的时间范围从2018年7月19日下午3:18:00至3:18:30(UTC)。currentTime:
"2018-07-19T15:18:00Z"
– 设置当前时间为时间区间的开始。multiplier:
2
– 设置时间的加速因子,即时间会以2倍的速度进行播放。range:
"LOOP_STOP"
– 表示当时间结束时,时间会停止并回到起始点。step:
"SYSTEM_CLOCK_MULTIPLIER"
– 这意味着时间步进将按照系统时钟的乘法器进行。
2. 第二部分:CesiumMilkTruck模型
{
"id": "CesiumMilkTruck",
"model": {
"gltf": "models/CesiumMilkTruck/CesiumMilkTruck.glb"
},
"position": {
"interpolationAlgorithm": "LINEAR",
"forwardExtrapolationType": "HOLD",
"cartesian": [
"2018-07-19T15:18:00Z",
1216327.3893347275,
-4736164.778028102,
4081507.5209477833,
"2018-07-19T15:18:10Z",
1216369.543258349,
-4736201.237448179,
4081447.3732212726,
"2018-07-19T15:18:20Z",
1216434.7507773656,
-4736241.372142024,
4081386.1802605274,
"2018-07-19T15:18:30Z",
1216525.7792628652,
-4736271.927759278,
4081319.744558958
]
},
"orientation": {
"unitQuaternion": [
0.3084011337938999,
0.3210181022701266,
-0.45850421987074924,
0.7686388857813198
]
}
}
id:
"CesiumMilkTruck"
该对象的唯一标识符,可以在Cesium场景中引用。model:
-
gltf:
"models/CesiumMilkTruck/CesiumMilkTruck.glb"
– 指定了3D模型的路径,表示加载一个.glb
格式的模型文件(在此案例中是一个“Milk Truck”)。
position:
-
interpolationAlgorithm:
"LINEAR"
– 该属性定义了位置的插值方法。LINEAR
表示位置变化是线性插值,即以恒定速度移动。forwardExtrapolationType:
"HOLD"
– 如果时间超出提供的区间,模型将保持当前状态而不移动(”HOLD”)。cartesian – 位置数据以“笛卡尔坐标”表示,即[x, y, z]坐标。这里列出了模型在不同时间点的位置,每个时间点跟随3D坐标值(东经、北纬、海拔)。
-
-
- 示例:
-
-
-
-
"2018-07-19T15:18:00Z", 1216327.3893347275, -4736164.778028102, 4081507.5209477833
表示在2018年7月19日15:18:00时,模型的位置为(1216327.3893347275, -4736164.778028102, 4081507.5209477833)
。
-
-
-
-
- 一共提供了四个时间点(从2018年7月19日15:18:00到15:18:30),这些数据描述了物体沿路径的运动。
-
orientation:
-
unitQuaternion – 用四元数表示模型的旋转。四元数用于描述3D旋转,避免了欧拉角所带来的万向锁问题。这里的四元数定义了模型在空间中的朝向。
3. 第三部分:Polyline(折线)
{
"id": "Polyline",
"polyline": {
"positions": {
"cartesian": [
1216327.3893347275,
-4736164.778028102,
4081507.5209477833,
1216369.543258349,
-4736201.237448179,
4081447.3732212726,
1216434.7507773656,
-4736241.372142024,
4081386.1802605274,
1216525.7792628652,
-4736271.927759278,
4081319.744558958
]
},
"material": {
"polylineOutline": {
"color": {
"rgba": [100, 149, 237, 140]
},
"outlineWidth": 0
}
},
"width": 12,
"clampToGround": true
}
}
id:
"Polyline"
这是折线的标识符。polyline: 描述一条由多个点连接的折线。
-
positions:
-
-
cartesian – 提供了折线的多个点坐标,使用笛卡尔坐标系表示每个点的位置。
-
material:
-
polylineOutline – 设置折线的颜色和外边框样式。
-
-
color: 使用RGBA颜色模式([100, 149, 237, 140])表示颜色,其中前三个数字是RGB值,最后一个数字是透明度。
outlineWidth: 设置边框的宽度为0,意味着没有边框。
-
width:
12
设置折线的宽度为12个像素。clampToGround:
true
表示该折线会被“钉”到地面上,确保其始终与地面相接。
总结
该CZML文件包含三个主要部分:
- Document部分:设定了时钟和时间范围的参数。
- CesiumMilkTruck模型:描述了一个模型(“Milk Truck”)的3D显示和运动轨迹。
- Polyline部分:定义了一条折线,连接了多个3D点并且为这条折线设置了颜色、宽度和地面钉住属性。
这些对象共同构成了一个在Cesium中动态展示3D模型和路径的场景。
声明:本站资源是网友搜集整理而成,(除广告页面及原创教程)版权均归原作者所有。本站仅提供一个观摩学习的环境,将不对任何资源负法律责任。本站为纯属分享资源站点,网站内所有资源仅供学习交流之用,请勿用作商业用途(CC协议除外),并请于下载后24小时内删除,谢谢。若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息后会尽快给予处理!