现在外地人能不能进广州,杭州seo联盟,中国卫生健康人才网,哈尔滨h5制作orientation配置项的参数
cesium中#xff0c;朝向orientation#xff0c;通常使用heading、pitch、roll这三个参数来描述
heading 通过调整heading的值#xff0c;使相机朝向特定的方向朝向方向说明【北#xff1a;0#xff0c; 东#xff1a;π/2弧度#xff0c; …orientation配置项的参数
cesium中朝向orientation通常使用heading、pitch、roll这三个参数来描述
heading 通过调整heading的值使相机朝向特定的方向朝向方向说明【北0 东π/2弧度 南π弧度 西-π/2弧度】例如让相机朝向西北方向将heading设置为正北0弧度和正西-π/2弧度之间的某个值让相机朝向西南方向将heading设置为正南π弧度和正西-π/2弧度之间的某个值
pitch pitch控制相机的俯仰角它的值决定了相机视线 与 地平面 之间的角度因为pitch是以弧度为单位的
所以它的取值范围在理论上是从负无穷到正无穷
但是实际上对于相机的可视化来说它的有效范围是有限的。1、Cesium.Math.toRadians(0)相机水平看向地平线默认值相机的视线完全平行于地平面2、Cesium.Math.toRadians(-90)相机直视地面相机的视线完全垂直于地平面朝向地面3、Cesium.Math.toRadians(90)相机直视天空相机的视线完全垂直于地平面朝向天空在某些情况下由于地球曲率和相机的近裁剪面near clipping plane的限制相机可能无法完全直视天空补充1、介于Cesium.Math.toRadians(-90) 和 Cesium.Math.toRadians(90)之间的值表示相机在地面和天空之间的某个角度上正值表示相机向上看负值表示相机向下看2、pitch的值不能超过其有效范围否则可能会导致相机视图不可见或不可预测的行为。3、pitch的值是相对于地平面的而不是相对于相机当前位置的法线方向因此当相机位置发生变化时相同的pitch值可能会导致相机看向不同的方向如果需要让相机始终朝向某个固定点或方向可能需要使用其他方式如lookAt方法或调整相机的位置和朝向来实现。
roll roll用于描述相机绕其视线方向Direction轴即X轴旋转的角度单位是弧度。roll通常用于表示相机在保持heading和pitch不变的情况下绕其视线方向的旋转定义roll相机绕Direction轴视线方向旋转的角度Direction轴为X轴且绕X轴旋转为正。【右手定则】核心以场景为根本当你的右手拇指指向X轴的正方向即视线方向时其他四个手指的弯曲方向表示了旋转的正方向。【旋转方向】roll为正相机将绕视线方向顺时针旋转根据右手定则来转roll为负相机将绕视线方向逆时针旋转根据右手定则来转例子1、Cesium.Math.toRadians(0)表示相机没有发生绕视线方向的旋转即保持其原始朝向。2、Cesium.Math.toRadians(180)或Math.PI表示相机绕视线方向旋转了180度即相机上下颠倒。3、介于Cesium.Math.toRadians(0)和Cesium.Math.toRadians(180)之间的值表示相机在保持heading和pitch不变的情况下绕视线方向发生了不同程度的旋转。实际应用在Cesium中roll通常用于模拟某些特殊效果如飞机的翻滚动作、相机的特殊视角在大多数情况下你可能不需要频繁地调整roll的值但在需要精细控制相机视角时了解并调整roll可能会很有帮助。
---------------------------------------------------------------
三种方法
flyTo viewer.value.camera.flyTo({// destination目的地destination: Cesium.Cartesian3.fromDegrees(-122.4175, 37.655, 400),duration: 3.0, // 飞行持续时间秒orientation: {heading: Cesium.Math.toRadians(20), // 朝向单位弧度20度转换为弧度pitch: Cesium.Math.toRadians(-15), // 倾斜单位弧度-15度转换为弧度roll: 0.0 // 翻滚通常设置为0},complete: () {console.log(飞行动画完成后被调用)},cancel: () {console.log(飞行动画被取消时被调用)}
})
setView const setView () {// 将相机移动到北京的上空并朝向地面const position Cesium.Cartesian3.fromDegrees(116.4, 39.9, 1000)viewer.value.camera.setView({destination: position,orientation: {heading: Cesium.Math.toRadians(0),pitch: Cesium.Math.toRadians(-90),roll: Cesium.Math.toRadians(90)}})
}
lookat lookAt方法用于将相机即视角锁定到指定的位置并可能在此基础上应用一定的偏移。【语法】let target Cesium.Cartesian3.fromRadians(经度, 纬度, height) // 设置目标位置let offset new Cesium.HeadingPitchRange(heading, pitch, range) // 设置偏移viewer.camera.lookAt(target, offset)例子const lookat () {/* Cesium.Cartesian3.fromDegrees(120.0, 30.0, 3000000)将经纬度120.0, 30.0和高度3000000 米转换为 Cartesian3对象表示3D空间中的一个点这里设置的目标位置是东经120.0度、北纬30.0度并且距离地球表面3000000米*/const target Cesium.Cartesian3.fromDegrees(120.0, 30.0, 3000000)/*0相机的朝向Heading表示正北方向Cesium.Math.PI_OVER_TWO相机的俯仰Pitch表示相机向下看即朝向地球。【Cesium.Math.PI_OVER_TWO 等于 Math.PI / 2即90度】 所以 “-Cesium.Math.PI_OVER_TWO 等于 -90度”即指向地面。5000000是相机的范围Range表示相机距离目标点的距离是5000000米。*/const offset new Cesium.HeadingPitchRange(0, -Cesium.Math.PI_OVER_TWO, 5000000)viewer.value.camera.lookAt(target, offset)}