当前位置: 首页 > news >正文

Cesium Viewer 类学习

Viewer提供了创建和控制3D场景所需的所有基本功能,包括加载3D模型、添加图像覆盖物、设置相机位置和方向、处理用户输入等。

构造函数:

new Cesium.Viewer(container, options)
是用来创建一个新的 Cesium 视图器(Viewer)实例的构造函数

  • container:必需,表示视图器容器元素的ID字符串或HTML元素。
  • options:可选,是一个包含所有初始选项的JavaScript对象,可以控制如何呈现三维场景、哪些数据源可用以及视图控制器的行为等方面。
    例:
  const viewer = new Cesium.Viewer('cesiumContainer',{animation:false,//动画小部件baseLayerPicker:false,//地图图层组件fullscreenButton:false,//全屏组件geocoder:false,//地理编码搜索组件homeButton:false,//首页组件infoBox:false,//信息框sceneModePicker:false,//场景模式selectionIndicator:false,//选取指示器组件timeline:false,//时间轴navigationHelpButton:false,//帮助按钮navigationInstructionsInitiallyVisible:false, // 导航指示})

成员变量:

  • animation: Animation实例,表示动画控制器,可以用于控制动画的播放和暂停。
  • baseLayerPicker: BaseLayerPicker实例,用于选择底图图层。
  • bottomContainer: HTMLElement实例,表示Viewer中底部的HTML容器元素。
  • camera: Camera实例,表示当前的相机,可以通过该实例控制相机的位置、姿态等属性。
  • canvas: HTMLCanvasElement实例,表示Viewer中渲染3D场景的Canvas元素。
  • cesiumWidget: CesiumWidget实例,Viewer的基础构建块。
  • clock: Clock实例,表示时钟,可以用于控制时间相关的可视化效果。
  • clockViewModel: ClockViewModel实例,表示时钟视图模型,用于控制时间相关的可视化效果。
  • container: HTMLElement实例,表示Viewer的HTML容器元素。
  • creditContainer: HTMLElement实例,表示Viewer中版权信息的HTML容器元素。
  • dataSourceDisplay: DataSourceDisplay实例,用于显示数据源中的实体。
  • entities: EntityCollection实例,用于管理所有的实体对象。
  • fullscreenButton: FullscreenButton实例,用于全屏显示Viewer的内容。
  • geocoder: Geocoder实例,用于地名搜索和定位。
  • homeButton: HomeButton实例,用于将相机位置和姿态重置为默认值。
  • imageryLayers: ImageryLayerCollection实例,表示图像图层集合,可以添加或删除不同的图层。
  • infoBox: InfoBox实例,用于显示实体的详细信息和属性。
  • navigationHelpButton: NavigationHelpButton实例,用于显示Viewer中的导航帮助信息。
  • postProcessStages: PostProcessStageCollection实例,表示后处理阶段的集合,可以添加或删除不同的后处理效果。
  • projectionPicker: ProjectionPicker实例,用于选择不同的地球投影方式。
  • scene: Scene实例,表示三维场景,包含了所有的3D对象和图层以及相机参数等信息。
  • screenSpaceEventHandler: ScreenSpaceEventHandler实例,用于处理鼠标和触摸事件。
  • selectedEntity: Entity实例,表示当前选中的实体。
  • selectionIndicator: SelectionIndicator实例,用于显示当前选中实体的指示器。
  • shadowMap: ShadowMap实例,用于生成和渲染阴影图。
  • skyBox: SkyBox实例,用于设置天空盒。
  • skyBoxEllipsoid: Cartesian3实例,表示天空盒所在的椭球体。
  • sun: Sun实例,用于控制太阳的位置和光照效果。
  • targetFrameRate: Number类型,表示目标帧率。
  • terrainProvider: TerrainProvider实例,表示当前使用的地形提供程序。
  • terrainShadows: ShadowMode类型,表示地形产生阴影的模式。
  • useDefaultRenderLoop: Boolean类型,表示是否使用默认的渲染循环。
  • useBrowserRecommendedResolution: Boolean类型,表示是否使用浏览器推荐的分辨率

常用方法:

  • destroy(): 销毁Viewer实例。
  • flyTo(target, options): 使相机飞行到指定的目标位置,并设置相应的动画效果和参数。
  • forceResize(): 强制刷新Viewer的大小和位置。
  • isDestroyed(): 判断Viewer是否已经销毁。
  • render(): Promise: 渲染3D场景并返回Promise对象,用于异步等待渲染结果。
  • resize(): undefined: 调整Viewer的大小和位置。
  • zoomTo(target, offset): 用于将视图缩放到指定的范围或尺寸的函数,target:定位到的实体、实体集合、数据源等。 offset:偏移量。

flyTo使用

// 定义目标位置和视角let targetPosition = Cesium.Cartesian3.fromDegrees(120.84, 30.15, 178500);let heading = Cesium.Math.toRadians(90.0);let pitch = Cesium.Math.toRadians(-45.0);let roll = Cesium.Math.toRadians(0.0);// 相机飞到目标点viewer.camera.flyTo({destination: targetPosition,orientation: {heading:heading, // 相机绕z轴旋转pitch:pitch, // 相机绕y轴旋转roll:roll // 相机绕x轴旋转},duration: 3 // 飞行动画时长});
http://www.lryc.cn/news/331942.html

相关文章:

  • 第十四届省赛大学B组(C/C++)子串简写
  • 深入浅出 -- 系统架构之微服务架构
  • YoloV8改进策略:下采样改进|自研下采样模块(独家改进)|疯狂涨点|附结构图
  • Python从0到100(十):Python集合介绍及运用
  • 实用技巧:如何取消app的截屏禁用
  • 【氮化镓】GaN SP-HEMT的栅极可靠性
  • Linux基础和进阶用法
  • Linux运维-SHELL编程之正则表达式与流编辑处理器
  • openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint
  • flex:1的作用是什么?
  • Mysql安装(命令方式安装)
  • Vben Admin实战-系统管理之用户管理-(第12节)
  • Oracle常规操作
  • 「33」如何让你的直播场景增加透视感?
  • Macbook文件清理软件 Mac电脑清理垃圾文件怎么清理
  • 【Java基础】Java基础知识整合
  • 构建集创建、售卖、转让于一体,且基于ERC721 token的NFT平台,从编写智能合约开始(Web3项目四实战之一)
  • 跨境金融区块链服务平台
  • 运筹学经典问题(八):CVRP和VRP-TW
  • AI与技术美术(TechArt)
  • 二叉树层序遍历 及相关题目
  • 【前端面试3+1】11 http和https有何不同及https的加密过程、数组有哪些方法及作用、tcp三次握手四次挥手、【分发饼干】
  • 替代 Redis 和 Memcached:25 倍吞吐量! | 开源日报 No.213
  • Qt与OpenCV实现图像模板匹配
  • OpenHarmony实战:CMake方式组织编译的库移植
  • Linux云计算之Linux基础3——Linux基本认识操作
  • canvas画图,画矩形、圆形、直线可拖拽移动,可拖拽更改尺寸大小
  • Github 2024-04-04 Go开源项目日报 Top10
  • 并发与限流实战:如何利用 RabbitMQ 在 SpringBoot 应用中实现并发控制与流量限制
  • VUE实现下一页的功能