Cesium@1.126.0,创建3D瓦片,修改样式

在这里插入图片描述

第一步:添加3D建筑

Cesium.createOsmBuildingsAsync()

这是一个异步方法,所以要写在一个异步函数里
创建一个函数

  const create3DBuilding = async (viewer) => {try {// 添加3D建筑const tileset = await Cesium.createOsmBuildingsAsync();viewer.scene.primitives.add(tileset);} catch (error) {console.log(`Error creating tileset: ${error}`);}};

上述代码运行后的效果
在这里插入图片描述

第二步:设定样式

根据某些条件设定样式

首先点击页面中的建筑,右侧会出现信息框。信息框中有一些基本信息
在这里插入图片描述
这里,我们根据建筑的类型进行颜色设置

const tileset = await Cesium.createOsmBuildingsAsync({style: new Cesium.Cesium3DTileStyle({color: {// 设置条件conditions: [// 建筑为医院时["${feature['building']} === 'hospital'", "color('#0000FF')"],// 建筑为学校时["${feature['building']} === 'school'", "color('#00FF00')"],// 建筑为公寓时["${feature['building']} === 'apartments'", "color('#ffa600')"],// 除了上述条件以为,其他建筑的颜色[true, "color('#999999')"],],},}),});

以某一点为中心,向周围扩散设置样式

在这里插入图片描述
根据代码中设定的经纬度
const position = Cesium.Cartesian3.fromDegrees(113.3191, 23.109, 1000);
设置在小于position经纬度0.01的范围设置特定的颜色。

const tileset = await Cesium.createOsmBuildingsAsync({style: new Cesium.Cesium3DTileStyle({defines: {distance:"distance(vec2(${feature['cesium#longitude']},${feature['cesium#latitude']}),vec2(113.3191,23.109))",},color: {// 设置条件conditions: [['${distance} < 0.01', "color('rgba(123,15,110,.8)')"],['${distance} < 0.02', "color('rgba(23,125,110,.5)')"],['${distance} < 0.03', "color('rgba(99,121,110,.8)')"],[true, "color('#999999')"],],},}),});

直接设置所有建筑为蓝色

 const tileset = await Cesium.createOsmBuildingsAsync({style: new Cesium.Cesium3DTileStyle({color: "color('blue')",}),});

完整代码

const CesiumCreate: React.FC = () => {const cesiumRef = useRef<HTMLDivElement>(null);const create3DBuilding = async (viewer) => {try {// 添加3D建筑const tileset = await Cesium.createOsmBuildingsAsync({style: new Cesium.Cesium3DTileStyle({color: {// 设置条件conditions: [["${feature['building']} === 'hospital'", "color('#0000FF')"],["${feature['building']} === 'school'", "color('#00FF00')"],["${feature['building']} === 'apartments'", "color('#ffa600')"],[true, "color('#999999')"],],},}),});viewer.scene.primitives.add(tileset);} catch (error) {console.log(`Error creating tileset: ${error}`);}};// 初始化调用useEffect(() => {if (cesiumRef.current) {// 创建实例const viewer = new Cesium.Viewer(cesiumRef.current, {// infoBox: false, // 这里需要打开信息框,后续有用});// 隐藏logoviewer.cesiumWidget.creditContainer.style.display = 'none';create3DBuilding(viewer);const position = Cesium.Cartesian3.fromDegrees(113.3191, 23.109, 1000);viewer.camera.flyTo({destination: position,duration: 2,});return () => {if (!viewer.isDestroyed()) {viewer.destroy();}};}}, []);return (<div id={'cesiumContainer'} ref={cesiumRef} style={{ height: '100vh', width: '100vw' }}></div>);
};export default CesiumCreate;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/71891.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣-贪心-1005 k次取反后最大化的数组和

思路 找到绝对值最大的&#xff0c;然后如果是负数就变成正的&#xff0c;所有数遍历完之后&#xff0c;有两种情况&#xff0c;一种是k已经为0了&#xff0c;不需要再取反了&#xff0c;一种是所有数都为正数&#xff0c;k不为0&#xff0c;此时对绝对值最小的数操作即可 代…

vue2项目打包后js文件过大, 首次加载缓慢

vue2项目打包后js文件过大, 首次加载缓慢 安装插件 npm i compression-webpack-plugin6.1.1 -D配置vue.config.js const CompressionWebpackPlugin require(compression-webpack-plugin)module.exports {configureWebpack: {plugins:[new CompressionWebpackPlugin({filen…

高级SQL技术在Python项目中的应用:ORM与深度性能优化

引言 在现代Python项目开发中,数据库交互远不止是数据的简单存取,它已成为构建高性能、可维护应用的核心瓶颈和关键能力所在。 仅仅依赖基础SQL查询,虽然入门简单,却难以应对日益增长的应用挑战。这些挑战主要体现在以下几个方面: 性能瓶颈: 数据量剧增: 从百万到数十亿乃…

基于 C++ Qt 的 Fluent Design 组件库 QFluentWidgets

简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库&#xff0c;内置超过 150 个开箱即用的 Fluent Designer 组件&#xff0c;支持亮暗主题无缝切换和自定义主题色。 编译示例 以 Qt5 为例&#xff08;Qt6 也支持&#xff09;&#xff0c;将 libQFluentWidgets.d…

抖音视频如何下载保存去水印

随着短视频平台的兴起&#xff0c;抖音作为国内最受欢迎的短视频平台之一&#xff0c;吸引了大量用户上传和观看各种创意视频。许多用户在浏览抖音视频时&#xff0c;往往会想要保存一些有趣或精彩的视频片段&#xff0c;但抖音视频通常会有水印&#xff0c;影响观看体验。为了…

React 源码揭秘 | 更新队列

前面几篇遇到updateQueue的时候&#xff0c;我们把它先简单的当成了一个队列处理&#xff0c;这篇我们来详细讨论一下这个更新队列。 有关updateQueue中的部分&#xff0c;可以见源码 UpdateQueue实现 Update对象 我们先来看一下UpdateQueue中的内容&#xff0c;Update对象&…

[SQL] 事务的四大特性(ACID)

&#x1f384;事务的四大特性 以下就是事务的四大特性&#xff0c;简称ACID。 原子性&#x1f4e2;事务时不可分割的最小操作单元&#xff0c;要么全部成功&#xff0c;要么全部失败。一致性&#x1f4e2;事务完成后&#xff0c;必须使所有的数据都保持一致隔离性&#x1f4e2…

DeepSeek 提示词:基础结构

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

如何使用 Python 连接 MySQL 数据库?

在Python开发中&#xff0c;连接MySQL数据库是一个常见的需求。 我们可以使用多种库来实现这一功能&#xff0c;其中最常用的是mysql-connector-python和PyMySQL。 下面我将详细介绍如何使用这两个库来连接MySQL数据库&#xff0c;并提供一些实际开发中的建议和注意事项。 1…

Apache DolphinScheduler系列1-单节点部署及测试报告

文章目录 整体说明一、部署环境二、版本号三、部署方案四、部署步骤4.1、上传部署包4.2、创建外部数据库4.3、修改元数据库配置4.4、上传MySQLl驱动程序4.5、初始化外部数据库4.6、启停服务4.7、访问页面五、常见问题及解决方式5.1、时间不一致5.2、异常终止5.3、大量日志5.4、…

LLM之论文阅读——Context Size对RAG的影响

前言 RAG 系统已经在多个行业中得到广泛应用&#xff0c;尤其是在企业内部文档查询等场景中。尽管 RAG 系统的应用日益广泛&#xff0c;关于其最佳配置的研究却相对缺乏&#xff0c;特别是在上下文大小、基础 LLM 选择以及检索方法等方面。 论文原文: On the Influence of Co…

人工智能(AI):科技新纪元的领航者

摘要 人工智能&#xff08;AI&#xff09;作为当今科技领域最具变革性的力量之一&#xff0c;正以惊人的速度重塑着我们的世界。本文旨在全面且专业地介绍人工智能&#xff0c;涵盖其定义、发展历程、关键技术、应用领域、面临的挑战以及未来展望等方面&#xff0c;以期为读者…

如何防止 Docker 注入了恶意脚本

根据您的描述&#xff0c;攻击者通过 CentOS 7 系统中的 Docker 注入了恶意脚本&#xff0c;导致自动启动名为 “masscan” 和 “x86botnigletjsw” 的进程。这些进程可能用于网络扫描或其他恶意活动。为了解决这一问题&#xff0c;建议您采取以下步骤&#xff1a; 1. 停止并删…

LLaMA-Factory|微调大语言模型初探索(4),64G显存微调13b模型

上篇文章记录了使用lora微调deepseek-7b&#xff0c;微调成功&#xff0c;但是微调llama3-8b显存爆炸&#xff0c;这次尝试使用qlora微调HQQ方式量化&#xff0c;微调更大参数体量的大语言模型&#xff0c;记录下来微调过程&#xff0c;仅供参考。 对过程不感兴趣的兄弟们可以直…

详解 Spring 配置数据源的两种方式

在 Spring 框架中配置数据源&#xff08;DataSource&#xff09;主要有两种方式&#xff1a; 通过 Setter 注入配置数据源通过 jdbc.properties 配置文件方式 本博文将使用 Druid 作为数据源&#xff0c;其在 Spring 项目中常见且高效。 Druid 被广泛认为是性能最佳的连接池…

项目进度管理工具:甘特图与关键路径法(2025实战指南)

在全球数字化转型加速的背景下&#xff0c;项目延期率高达42%的现状倒逼管理者掌握科学的进度管理工具。本文结合2025年最新实践&#xff0c;深度解析甘特图与关键路径法的原理及应用&#xff0c;助你构建精准可控的项目进度管理体系。 一、双剑合璧&#xff1a;工具组合的价值…

RAGS评测后的数据 如何利用influxdb和grafan 进行数据汇总查看

RAGS(通常指相关性、准确性、语法、流畅性)评测后的数据能借助 InfluxDB 存储,再利用 Grafana 进行可视化展示,实现从四个维度查看数据,并详细呈现每个问题对应的这四个指标情况。以下是详细步骤: 1. 环境准备 InfluxDB 安装与配置 依据自身操作系统,从 InfluxDB 官网下…

详解Redis如何持久化

引言 本文介绍了 Redis 的两种持久化方式&#xff1a;RDB 和 AOF。RDB 按时间间隔快照存储&#xff0c;AOF 记录写操作。阐述了它们的配置、工作原理、恢复数据的方法、性能与实践建议&#xff0c;如降低 fork 频率、控制内存等&#xff0c;还提到二者可配合使用&#xff0c;最…

HarmonyOS Design 介绍

HarmonyOS Design 介绍 文章目录 HarmonyOS Design 介绍一、HarmonyOS Design 是什么&#xff1f;1. 设计系统&#xff08;Design System&#xff09;2. UI 框架的支持3. 设计工具和资源4. 开发指南5. 与其他设计系统的对比总结 二、HarmonyOS Design 特点 | 应用场景1. Harmon…

PC端-发票真伪查验系统-Node.js全国发票查询接口

在现代企业的财务管理中&#xff0c;发票真伪的验证至关重要。随着电子发票的普及&#xff0c;假发票问题日益严峻&#xff0c;如何高效、准确的对发票进行真伪查验&#xff0c;已经成为各类企业在日常运营中必须解决的关键问题。翔云发票查验接口做企业财务管理、税务合规的好…