Камера может управлять нашим полем зрения в сцене. По умолчанию работа камеры выглядит следующим образом:
Официальная документация: https://cesium.com/docs/cesiumjs-ref-doc/Camera.html.
Просмотр карты с одной точки зрения, пример настройки
let { scene, camera ,screenSpaceCameraController} = viewer
// Отключить события по умолчанию
scene.screenSpaceCameraController.enableRotate = false;//отключить вращение
scene.screenSpaceCameraController.enableTranslate = false;// Движение запрещено
scene.screenSpaceCameraController.enableZoom = false;//отключить масштабирование
scene.screenSpaceCameraController.enableTilt = false;//Отключаем наклон камеры
scene.screenSpaceCameraController.enableLook = false;
let cameraHeight = 1.1e7
//Минимальная высота камеры, которая контролирует уровень увеличения
screenSpaceCameraController.minimumZoomDistance = cameraHeight * 1.5
//Максимальная высота камеры, которая контролирует уровень масштабирования
screenSpaceCameraController.maximumZoomDistance = cameraHeight * 3
let pointDestination=Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0);//Точка обзора
let прямоугольникDestination=Cesium.Rectangle.fromDegrees(0,20,10,30);//Область поля зрения состоит из четырех градусов [запад, юг, восток, север]
scene.camera.setView({
destination: pointDestination,
orientation: {
heading: 6.283185307179586,
pitch: -1.5707963267948966,
roll: 0
}
})
Теоретические аспекты,Можно обратиться к《Примечания к трехмерному вращению: углы Эйлера/кватернионы/матрица вращения/углы оси – организация точек памяти.》
Цезий, параметры вращения камеры:
FlyTo может устанавливать больше параметров, чем setView.
view.camera.flyTo({
destination :Cesium.Cartesian3.fromDegrees(116.435314,39.960521, 15000.0), // Установить местоположение
orientation: { heading :Cesium.Math.toRadians(20.0), // направление
pitch :Cesium.Math.toRadians(-90.0),// угол наклона
roll :0
},
duration:5, // Установите продолжительность полета, которая по умолчанию будет рассчитываться на основе расстояния.
complete:function () {//TODO}, // Функция обратного вызова, выполняемая после достижения позиции
cancle:function () {//TODO}, // Эта функция будет вызвана в случае отмены рейса.
pitchAdjustHeight:-90, // Если камера пролетает выше этого значения, угол тангажа корректируется и земля остается в окне просмотра.
maximumHeight:5000, // Максимальная высота полета камеры
flyOverLongitude:100, // Если есть 2 способа добраться до пункта назначения,После установки конкретного значения выбор будет принудительным.направлениелететь через эту долготу(этот,Очень полезно)});
Справочные статьи:
Примечания к исследованию цезия (4): камера https://blog.csdn.net/UmGsoil/article/details/74518960
ПерепечаткаЭтот сайтстатья《Примечания по цезию (7): камера и поле зрения, конфигурация масштабирования и вращения карты движения цезия.》, Пожалуйста, укажите источник:https://www.zhoulujun.cn/html/GIS/cesium/8333.html