3D Tiles高级样式设置与条件渲染(3)

二、基于地理距离的条件渲染

1.根据与特定点的距离设置样式

在某些应用中,我们可能需要根据建筑物与某个特定点(如地标建筑)的距离来设置样式。以下代码示例展示了如何根据建筑物与广州塔的距离来设置颜色和可见性:

javascript 复制代码
tiles3d.style = new Cesium.Cesium3DTileStyle({
    // 定义一些变量,这些变量可以在样式中使用
    defines: {
        // 定义一个名为distance的变量,计算每个瓦片与指定经纬度点(113.3191, 23.109)的距离
        distance: "distance(vec2(${feature['cesium#longitude']},${feature['cesium#latitude']}), vec2(113.3191, 23.109))"
    },
    // 设置瓦片的颜色
    color: {
        // 根据条件动态设置颜色
        conditions: [
            // 如果距离小于0.01度
            ["${distance} < 0.01", "color('rgba(0,0,50, 0.7)')"], // 设置为半透明的深蓝色
            // 如果距离小于0.02度
            ["${distance} < 0.02", "color('rgba(0,0,50, 0.5)')"], // 设置为半透明的蓝色
            // 如果距离小于0.04度
            ["${distance} < 0.04", "color('rgba(0,0,50, 0.2)')"], // 设置为半透明的浅蓝色
            // 其他情况
            ["true", "color('white')"] // 设置为白色
        ]
    },
    // 设置瓦片的显示条件
    show: "${distance} < 0.04 && ${feature['building']} === 'apartments'"
    // 只有当距离小于0.04度且建筑类型为'apartments'时,瓦片才显示
});
相关推荐
网硕互联的小客服5 小时前
Linux服务器磁盘应该如何合理分区?
linux·运维·服务器
FungLeo5 小时前
成为全栈·React 管理后台篇·总复盘:从“接口能调通”到“后台值得使用”
前端·react.js·前端框架·项目复盘·成为全栈
lisanmengmeng6 小时前
nacos nrpe 监控机及被监控机部署
服务器·nacos·nagios·nrpe
贵沫末6 小时前
Ubuntu——常用软件安装
linux·运维·ubuntu
Csvn7 小时前
并发模式:让渲染学会排队、插队和让路
前端
Doraemomo7 小时前
Linux内核驱动开发——中断与定时器
linux·运维·驱动开发
可乐鸡翅yeah_7 小时前
新手梳理:M3U8 线上问题,哪些是前端锅,哪些是后端锅
前端·ios·音视频·实时音视频·m3u8·音视频在线播放
Flynt7 小时前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
2301_808414387 小时前
Linux中动静态库的理解
linux·运维·服务器
M78佐菲8 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习