麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - TimeDynamicPointCloud 中文文档

本文介绍下Cesium中 TimeDynamicPointCloud API的详细使用说明。

TimeDynamicPointCloud API 调用方法

new Cesium.TimeDynamicPointCloud(options)
提供时间动态点云数据的回放。

点云帧是按平均帧加载时间和当前时钟速度确定的间隔预先获取的。 如果中间帧不能及时加载以满足回放速度,它们将被跳过。如果帧足够少或者时钟足够慢,那么就不会跳过任何帧。

Name Type Description
options Object 具有下列属性的对象:
Name Type Default Description
clock Clock 一个 Clock实例, 该实例用于确定时间维度的值。
intervals TimeIntervalCollection 一个 TimeIntervalCollection,其data属性是一个对象,该对象包含3D Tiles点云图块的 uri 和一个可选的 transform 。
show Boolean true optional 点云是否显示。
modelMatrix Matrix4 Matrix4.IDENTITY optional 对点云进行变换的4x4变换矩阵。
shadows ShadowMode ShadowMode.ENABLED optional 确定点云是否从每个光源投射或接收阴影。
maximumMemoryUsage Number 256 optional 点云可以使用的最大内存(以MB为单位)。
shading Object optional 构造一个PointCloudShading对象来控制点衰减和眼球穹顶照明的选项。
style Cesium3DTileStyle optional 使用3D Tiles Styling language,定义的样式应用于点云的每一个点。
clippingPlanes ClippingPlaneCollection optional ClippingPlaneCollection用于选择性地禁用点云渲染。

成员变量

将被渲染帧的包围球,如果没有帧被渲染返回undefined
ClippingPlaneCollection用于选择性地禁用点云渲染。
渲染新的一帧时触发的事件。

时间动态点云TimeDynamicPointCloud被传递给事件监听器。

Default Value: new Event()
示例:
pointCloud.frameChanged.addEventListener(function(timeDynamicPointCloud) {
    viewer.camera.viewBoundingSphere(timeDynamicPointCloud.boundingSphere);
});
为帧加载失败而触发的事件。如果由于无效的内容导致uri请求失败或处理失败,则帧可能无法加载。

如果没有事件监听器,错误消息将被记录到控制台。

传递给监听器的错误对象包含两个属性:

  • uri: 失败帧的uri。
  • message: 错误消息。
Default Value: new Event()
示例:
pointCloud.frameFailed.addEventListener(function(error) {
    console.log('An error occurred loading frame: ' + error.uri);
    console.log('Error: ' + error.message);
});
maximumMemoryUsage : Number
可用于缓存点云帧的最大GPU内存量(以MB为单位)。

未加载或未呈现的帧将被卸载以强制执行此操作。

如果降低这个值导致卸载tiles, tiles将在下一帧卸载。

Default Value: 256
参考:
对点云进行变换的4x4变换矩阵。
Default Value: Matrix4.IDENTITY
获取将在点云首次呈现帧时解析的承诺(Promise)。
基于几何误差和圆顶照明选择控制点大小。
确定点云是否从每个光源投射或接收阴影。

启用阴影会影响性能。投射阴影的点云必须渲染两次,一次是从相机渲染,另一次是从灯光角度渲染。

只有当Shadows true >时,才会呈现阴影。

Default Value: ShadowMode.ENABLED
确定是否显示点云。
Default Value: true
使用3D Tiles Styling language,定义的样式应用于点云的每一个点。

将移除的样式定义为undefined,当没有应用任何样式时,它将恢复点云的默认外观。

示例:
pointCloud.style = new Cesium.Cesium3DTileStyle({
   color : {
       conditions : [
           ['${Classification} === 0', 'color("purple", 0.5)'],
           ['${Classification} === 1', 'color("red")'],
           ['true', '${COLOR}']
       ]
   },
   show : '${Classification} !== 2'
});
参考:
readonlytotalMemoryUsageInBytes : Number
点云使用的GPU内存总量(以字节为单位)。
参考:

内置方法

销毁此对象持有的WebGL资源。

一旦对象被销毁,它将不能在使用; 调用除isDestroyed之外的任何函数都会导致DeveloperError异常。 因此,将返回值(undefined)赋给对象,如示例所示。
异常情况:
示例:
pointCloud = pointCloud && pointCloud.destroy();
参考:
isDestroyed()Boolean
如果该对象没被销毁,返回false。

如果该对象已经被销毁, 使用isDestroyed 会触发 DeveloperError 异常.
返回值:
false
参考:
Marks the point cloud's TimeDynamicPointCloud#style as dirty, which forces all points to re-evaluate the style in the next frame.

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)