一、项目介绍
项目需要一个指南针,用鼠标按住旋转指针,会让3d地图旋转,点击中心点重置方位。当然可以使用插件cesium-navigation-es6,但是样式不好修改,所以我自定义了一个指南针。

实现思路
在Cesium中,相机的方向由 heading、pitch 和 roll 三个角度参数控制,它们共同定义了相机在3D空间中的朝向。要让地图旋转,只要控制相机的角度即可。
heading(偏航角),绕(z)轴旋转,类似于指南针的方向,范围:0 到 2π 弧度(或 0° 到 360°)。
0或2π表示正北方向(默认Cesium的初始朝向)。π/2(90°)表示正东。π(180°)表示正南。3π/2(270°)表示正西。
Pitch(俯仰角),绕(y)轴旋转,控制相机的“抬头”或“低头”。 范围:-π/2 到 π/2,超过会导致视角翻转。
-
0表示相机水平朝前(平行于地面)。 -
π/2(90°)表示相机垂直向下(俯视地面)。 -
-π/2(-90°)表示相机垂直向上(仰视天空)。
Roll(翻滚角),绕(X)轴旋转的角度(倾斜左右)。在飞行模拟中模拟飞机倾斜,但Cesium中较少直接使用(默认通常为 0)
所以我们要先计算鼠标点击指南针时向左向右偏移的角度,将这个角度值转为相机旋转的弧度值,并重新设置给相机。
指南针实现
首先先创建一个div和css样式画出一个指南针:
<div class="compass-container">
<div
class="compass-outer-ring"
ref="compassOuterRing"
@click="handleClick"
@mousedown="onMouseDown"
9574




被折叠的 条评论
为什么被折叠?



