发布时间:2026/6/21 12:59:15
Cesium 视角切换教程
视角切换 ·Switch View· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么Cesium相机定位API 全家桶fly / zoom / setView / lookAt对Entity、3D Tiles、经纬度三类目标分别如何定位trackedEntity第三人称跟随与取消HeadingPitchRange控制观察角度效果说明场景加载成都附近3D Tiles 白膜与glb 园区模型dat.GUI 提供十余个按钮逐一演示不同相机 API 的视觉效果差异。核心概念Cesium 相机操作分三层| 层级 | 对象 | 典型方法 | |------|------|---------| | 便捷 |viewer|flyTo/zoomTo/trackedEntity| | 相机 |viewer.camera|flyTo/setView/lookAt/viewBoundingSphere| | 动画 |flyHome| 回到初始视角 |flyTo vs setView vs zoomToflyTo带过渡动画适合产品交互setView瞬间跳转适合初始化或调试zoomTo框选目标动画较短常用于数据加载后定位HeadingPitchRangenew Cesium.HeadingPitchRange(heading, pitch, range)heading绕 Z 轴旋转正北为 0pitch俯仰负值俯视地面range相机到目标距离trackedEntityviewer.trackedEntity entity; // 开启跟随viewer.trackedEntity undefined; // 取消相机会锁定实体地球在下方「自转」——适合车辆、飞机跟踪。实现步骤初始化 ViewerArcGIS 影像 天地图注记Cesium3DTileset.fromUrl加载白膜entities.add加载 glb用 dat.GUI 把各 API 封装成可点击函数对比 Entity / tileset / 经纬度 三种flyTo写法代码要点import * as Cesium from cesiumimport { GUI } from dat.guiconst box document.getElementById(box)const viewer new Cesium.Viewer(box, {animation: false,//是否创建动画小器件左下角仪表baseLayerPicker: false,//是否显示图层选择器右上角图层选择按钮baseLayer: Cesium.ImageryLayer.fromProviderAsync(Cesium.ArcGisMapServerImageryProvider.fromUrl(https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer)),fullscreenButton: false,//是否显示全屏按钮右下角全屏选择按钮timeline: false,//是否显示时间轴infoBox: false,//是否显示信息框})// 天地图注记图层 viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({url: https://t0.tianditu.gov.cn/cva_w/wmts?tkc4e3a9d54b4a79e885fff9da0fca712aservicewmtsrequestGetTileversion1.0.0LAYERcvatileMatrixSetwTileMatrix{TileMatrix}TileRow{TileRow}TileCol{TileCol}styledefaultformattiles,layer: tdtAnnoLayer,style: default,format: image/jpeg,tileMatrixSetID: GoogleMapsCompatible}))const tileset await Cesium.Cesium3DTileset.fromUrl(FILE_HOST 3dtiles/house/tileset.json)viewer.scene.primitives.add(tileset)const entity viewer.entities.add({name: gltf,position: Cesium.Cartesian3.fromDegrees(104.0668, 30.5728, 0), // 设置位置model: {uri: FILE_HOST /models/glb/map_park.glb,}})const gui new GUI()// viewer.flyTo viewer.zoomTo viewer.trackedEntity view.camera.setView viewer.camera.lookAtconst obj {重置最初:setView: () viewer.camera.flyHome(1),经纬度定位:flyTo: () viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(116.4074, 39.9042, 1000) }),实体:flyTo: () viewer.flyTo(entity),实体:zoomTo: () viewer.zoomTo(entity),实体跟随:trackedEntity: () viewer.trackedEntity entity,取消实体跟随:trackedEntity: () viewer.trackedEntity undefined,实体:lookAt: () viewer.camera.lookAt(entity.position.getValue(Cesium.JulianDate.now()), new Cesium.Cartesian3(0, 0, 1000)),瓦片:viewBoundingSphere: () viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0)),瓦片:flyToBoundingSphere: () viewer.camera.flyToBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0)),瓦片:zoomTo: () viewer.zoomTo(tileset),瓦片:flyTo: () viewer.flyTo(tileset),瓦片:setView: () viewer.camera.setView({ destination: tileset.boundingSphere.center, orientation: { heading: 0, pitch: -Math.PI / 4, roll: 0 } }),瓦片:lookAt: () viewer.camera.lookAt(tileset.boundingSphere.center),相机:zoomIn 1000: () viewer.camera.zoomIn(1000),相机:zoomOut 1000: () viewer.camera.zoomOut(1000),}for (const key in obj) gui.add(obj, key)console.log(viewer.camera)完整源码GitHub小结本文提供视角切换完整 Cesium.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Cesium.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库

相关新闻

Adobe-GenP 3.0:免费激活Adobe全家桶的终极指南,3分钟搞定Photoshop、Premiere Pro等专业软件
2026/6/21 12:59:15

Adobe-GenP 3.0:免费激活Adobe全家桶的终极指南,3分钟搞定Photoshop、Premiere Pro等专业软件

Adobe-GenP 3.0:免费激活Adobe全家桶的终极指南,3分钟搞定Photoshop、Premiere Pro等专业软件 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP …

阅读更多
高并发下写竞争解决方案:CAS与低延迟读写架构实践
2026/6/21 12:59:15

高并发下写竞争解决方案:CAS与低延迟读写架构实践

1. 从一次线上事故说起:当“库存”变成“烫手山芋”去年双十一,我负责的一个核心交易系统差点崩了。那是一个典型的秒杀场景,我们为某个热门商品准备了10万件库存。活动开始瞬间,流量洪峰涌来,监控面板上的QPS瞬间冲到…

阅读更多
Ubuntu 18.04 下安全可控的 Node.js 多版本管理方案
2026/6/21 11:59:15

Ubuntu 18.04 下安全可控的 Node.js 多版本管理方案

1. 项目概述:为什么在 Ubuntu 18.04 上装 Node.js 还值得专门讲?Node.js 不是“一个软件”,它是一套让 JavaScript 能脱离浏览器、直接操作文件系统、网络端口、进程调度的运行时环境。你在终端里敲node -v看到的版本号,背后是 V8…

阅读更多
i.MX31 WINCE 6.0 BSP显示驱动适配:System-80 Type 2接口LCD面板集成实战
2026/6/21 13:59:15

i.MX31 WINCE 6.0 BSP显示驱动适配:System-80 Type 2接口LCD面板集成实战

1. 项目概述与核心价值在嵌入式系统开发中,显示子系统往往是决定产品用户体验和功耗表现的关键一环。当硬件选型确定,需要将一块全新的LCD面板集成到基于i.MX31处理器和Windows CE 6.0的平台上时,开发者面临的挑战远不止是简单的物理连接。核…

阅读更多
GPT-4 Turbo 2024能力升级实操指南:告别版本幻觉,聚焦真实生产力
2026/6/21 13:59:15

GPT-4 Turbo 2024能力升级实操指南:告别版本幻觉,聚焦真实生产力

1. 项目概述:一场被误读的模型代际命名游戏 “GPT-5.5比GPT-6更值得你关注”——这句话刚在技术圈冒头,我就在三个不同行业的客户群里同时看到了转发。有人截图问“是不是OpenAI偷偷发布了新模型”,有人在知识星球里发帖求“GPT-5.5下载链接”…

阅读更多
免费Windows桌面分区工具NoFences:如何快速整理混乱的桌面图标
2026/6/21 13:59:15

免费Windows桌面分区工具NoFences:如何快速整理混乱的桌面图标

免费Windows桌面分区工具NoFences:如何快速整理混乱的桌面图标 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否厌倦了Windows桌面上杂乱无章的图标&#xf…

阅读更多
如何用智能脚本轻松激活Windows和Office系统
2026/6/21 13:59:15

如何用智能脚本轻松激活Windows和Office系统

如何用智能脚本轻松激活Windows和Office系统 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾经为Windows系统右上角那个令人不安的"需要激活"水印而烦恼?或者在使…

阅读更多
轻量模型与大模型混合调用实战指南:Haiku 4.5 vs GPT-5.2
2026/6/21 13:59:15

轻量模型与大模型混合调用实战指南:Haiku 4.5 vs GPT-5.2

1. 这场“轻量模型对决”根本不是比谁更聪明,而是比谁更懂怎么省着用最近在几个技术群和开发者论坛里,总能看到类似“Claude Haiku 4.5 vs GPT-5.2”的讨论刷屏。标题里带“对决”“之战”“全方位评测”,配上醒目的对比表格和夸张的性能曲线…

阅读更多
AI智能体与形式化验证:重塑GDPR合规的自动化实践
2026/6/21 12:59:15

AI智能体与形式化验证:重塑GDPR合规的自动化实践

1. 从合规“黑盒”到可验证“白盒”:为什么GDPR需要自动形式化?如果你在负责一个面向欧洲用户的互联网产品,那么“GDPR”这三个字母大概率是你的噩梦。它不仅仅是法务部门需要处理的一堆条款,更是悬在产品、研发、数据团队头上的达…

阅读更多
嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南
2026/6/21 0:59:13

嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南

1. 项目概述与G.726 ADPCM技术背景在嵌入式语音处理领域,带宽和存储资源往往是寸土寸金的。如果你做过对讲机、VoIP网关或者早期的数字录音设备,一定对如何在有限的比特率下保住语音可懂度这件事深有感触。我当年接手一个车载调度系统的项目,…

阅读更多
ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性
2026/6/21 0:59:13

ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性

1. 项目概述与核心挑战在数字视频处理领域,将原始的视频数据、同步时序以及各种辅助信息打包成一个标准、稳定的串行数据流,是确保设备间互联互通的基础。ITU-R BT.656标准(常简称为ITU656)正是为此而生的一套“交通规则”。它定义…

阅读更多
嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南
2026/6/21 0:59:13

嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南

1. 项目概述与emWin核心价值解析在嵌入式系统开发领域,人机交互(HMI)的设计正从简单的LED指示灯和按键,快速向全彩图形化界面演进。无论是智能家电上的触摸屏、工业PLC的操作面板,还是医疗设备的参数显示,一…

阅读更多
嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南
2026/6/21 0:59:13

嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南

1. 项目概述与G.726 ADPCM技术背景在嵌入式语音处理领域,带宽和存储资源往往是寸土寸金的。如果你做过对讲机、VoIP网关或者早期的数字录音设备,一定对如何在有限的比特率下保住语音可懂度这件事深有感触。我当年接手一个车载调度系统的项目,…

阅读更多
ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性
2026/6/21 0:59:13

ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性

1. 项目概述与核心挑战在数字视频处理领域,将原始的视频数据、同步时序以及各种辅助信息打包成一个标准、稳定的串行数据流,是确保设备间互联互通的基础。ITU-R BT.656标准(常简称为ITU656)正是为此而生的一套“交通规则”。它定义…

阅读更多
嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南
2026/6/21 0:59:13

嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南

1. 项目概述与emWin核心价值解析在嵌入式系统开发领域,人机交互(HMI)的设计正从简单的LED指示灯和按键,快速向全彩图形化界面演进。无论是智能家电上的触摸屏、工业PLC的操作面板,还是医疗设备的参数显示,一…

阅读更多
GIT修改用户名
2026/6/20 3:11:17

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/19 20:40:12

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/21 13:29:25

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多