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

cesium相机

相机的视角主要属性有两个, destination 相机位置 和 orientation 相机的方位

视角飞入 flyTo

// 经纬度
viewer.camera.flyTo({
    destination: Cesium.Cartesian3.fromDegrees(109.78, 28.36, 50000000),
});


// 矩形窗口  
viewer.camera.flyTo({
    destination:  Cesium.Rectangle.fromDegrees(110, 32, 112, 38),
});

 视角修改 没有飞入动画 setView

// 支持经纬高  同时可以设置 偏航heading 俯仰pitch   滚转roll  单位都是弧度
viewer.camera.setView({  
    destination : Cesium.Cartesian3.fromDegrees(110, 35, 5000000),  
    orientation: {  
        heading : 0.0,  
        pitch : -Cesium.Math.PI_OVER_TWO,  
        roll : 0.0  
    }  
});

// 同样支持矩形视角
viewer.camera.setView({  
    destination : Cesium.Rectangle.fromDegrees(west, south, east, north),,  
    orientation: {  
        heading : 0.0,  
        pitch : -Cesium.Math.PI_OVER_TWO,  
        roll : 0.0  
    }  
});



HeadingPitchRoll可以通过以 diretion、up的方式进行展示如图

// direction 和 up 
viewer.camera.setView({
    destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),  // 相机的位置
    orientation : {
         //相机视线方向矢量(WGS84系下)
        direction : new Cesium.Cartesian3(-0.042312, -0.201232, -0.978629),
            //相机的up方向矢量(WGS84系下)
        up : new Cesium.Cartesian3(-0.479345, -0.855321, 0.1966022)        
    }
});

视角锁定或跟踪  lookAt

const target = Cesium.Cartesian3.fromDegrees(120.0, 30.0, 3000000)
/*
0:相机的朝向(Heading),表示正北方向
			
1:Cesium.Math.PI_OVER_TWO:相机的俯仰(Pitch),表示相机向下看,即朝向地球。
	【Cesium.Math.PI_OVER_TWO 等于 Math.PI / 2,即90度】 
	所以 “-Cesium.Math.PI_OVER_TWO 等于 -90度”,即指向地面。
 2:是相机的范围(Range),
	表示,相机距离目标点的距离是`5000000`米。
*/
const offset = new Cesium.HeadingPitchRange(0, -Cesium.Math.PI_OVER_TWO, 5000000)

// lookAtTransform  第一个参数是 矩阵  第二个参数是HeadingPitchRange
viewer.camera.lookAtTransform(                   
    Cesium.Transforms.eastNorthUpToFixedFrame(target) ,offset )

// lookAt 第一个参数 是 笛卡尔坐标系 第二个参数是HeadingPitchRange
viewer.camera.lookAt( target, offset )


http://www.kler.cn/a/516265.html

相关文章:

  • WIN11 UEFI漏洞被发现, 可以绕过安全启动机制
  • Kyligence AI 数据智能体:首批亮相神州数码 DC·AI 生态创新中心!
  • 编写子程序
  • Trimble三维激光扫描-地下公共设施维护的新途径【沪敖3D】
  • 蚁群算法 (Ant Colony Optimization) 算法详解及案例分析
  • Redis vs. 其他数据库:深度解析,如何选择最适合的数据库?
  • Flutter接django后台文件通道
  • Tensor 基本操作4 理解 indexing,加减乘除和 broadcasting 运算 | PyTorch 深度学习实战
  • 【人工智能】深度卷积神经网络学习
  • 【数据库】详解MySQL数据库中索引的本质与底层原理
  • 代码随想录day16
  • 一键视频转文字/音频转文字,浏览器右键提取B站视频文案,不限时长免费无限次可用
  • CRM项目的开发与调试整体策略
  • Flutter鸿蒙化中的Plugin
  • SpringCloud系列教程:微服务的未来(十五)实现登录校验、网关传递用户、OpenFeign传递用户
  • (Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计
  • 2018 秋招 百度二轮面试---血淋淋的经历写实
  • 重构(4)
  • ruoyi-vue-plus 引入 ShardingSphere-JDBC 实现分库分表
  • docker 部署.netcore应用优势在什么地方?
  • Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到
  • 华为OD机试E卷 --树状结构查询--24年OD统一考试(Java JS Python C C++)
  • 概率密度函数(PDF)分布函数(CDF)——直方图累积直方图——直方图规定化的数学基础
  • 智源研究院与乐聚机器人成立具身智能联合实验室
  • 深度学习实战图像OCR识别
  • 【博客之星】2024年度创作成长总结 - 面朝大海 ,春暖花开!