【CesiumJS 入门】3D Tiles的样式和筛选

   日期:2024-12-25    作者:f709n 移动:http://mip.riyuangf.com/mobile/quote/13112.html

【CesiumJS 入门】系列是将CesiumJS官网教程文章翻译为中文,同时对文章进行了一定的补充,并且提供Vue3版本的代码GitHub - cesiumjs教程的vue3版本   。希望这个系列可以帮助你更好的学习cesium。

本教程解释了如何使用CesiumJS来设计和过滤3D Tiles以突出显示数据集的重要特征。

  • 具有的3D Tileset. 你可以上传你自己数据或使用Cesium精选的3D Tileset,例如OSM建筑物或蒙特利尔点云,这些可以在Cesium ion Asset Depot中找到。要将您的数据集转换为3D Tiles,请查看我们数据导入快速指南。

  • 关于CesiumJS的基础知识,对于初学者,请访问快速入门教程

  • 一个Cesium ion账号

3D Tiles的样式可以让您定义数据集中的要素应如何显示的规则,例如建筑物的颜色或显示的建筑物类型。这有助于识别城市中的模式或常见信息更丰富的可视化。

样式是使用json和javascipt表达式定义的。此外,样式语言还提供了一组内置函数来支持常见的数学运算,例如最小值、距离和对数等。

本教程包含3D Tiles样式语言的这些常用部分的示例:

  • 样式选项和
  • 条件测试,包含要素、和点云中点的
  • 使用定义创建
  • 距离函数
  • 创建新的颜色定义

有关 3D 切片样式和过滤的详细文档,请参阅 3D Tiles Styling Specification。 Sandcastle 中还提供了更多示例(搜索"styling")。

我们可以通过两种常见方法将样式应用于3D tileset:通过 show 和 color 属性,一旦我们确定了样式规则是什么,我们就可以通过将 3D tileset 的 style 成员变量设置为新的 Cesium3DTileStyle 将其应用到我们的功能中。


我们可以通过单击某个要素来查看要素的属性列表:

除了着色之外,3D Tiles样式语言还允许您根据元数据属性显示和隐藏要素。 以下是 Cesium OSM Buildings 切片集中的墨尔本所有建筑物。

假设我们想要查找墨尔本的所有住宅楼(residential buildings),这些住宅楼在OSM建筑中使用建筑属性分类为"residential"和"apartment".




您还可以使用条件来确定为要素分配什么颜色。

例如,您可能想为墨尔本皇冠娱乐中心周围区域的游客设计一条巴士路线。距综合体一定距离内有哪些建筑物?

此代码段根据每个建筑物与皇冠娱乐中心的距离为其分配颜色:


  • 3D Tiles 样式条件可让您在一个数组中定义要素的颜色。
  • 条件的行为类似于 if 语句
  • 定义表达式(defines expression)创建新变量
  • 距离(distance)是 3D Tiles 样式语言的内置函数。
  • 支持 CSS 样式的颜色定义。 上面的代码片段产生以下样式结果:

点云是遵循上述相同样式规则的点的集合,并具有一些附加选项。

除了 color 和 show 属性之外,点云图块还支持 pointSize。默认 pointSize 为 1.0。在Ceisum ion的 LAS 文件中的点云包括两个每点属性:分类(Classification)和强度(Intensity)。 点云样式也可以应用于其他属性,例如位置 position 、颜色 color 和法线 normal。例如,您可以使用POSIION_ABSOLUTE元数据属性根据点云图块与中心点的距离创建点云图片的热图,类似于我们根据OSM建筑与皇冠娱乐中心的距离为其着色的方式。



假设您想要可视化加拿大蒙特利尔生物圈博物馆周围的环境。样式规则是,如果点的分类属性是植被,则将点着色为绿色。

应用样式规则后,我们可以直观地看到博物馆周围有多少植被:

有时建筑物会缺少属性。在这种情况下,我们可以添加一个空检查器条件:



到这里本教程就结束啦

源码可从_GitHub - cesiumjs教程的vue3版本_下载


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号