Хотите подражать клавишам со стрелкой влево вправо в приложении CesiumJS, похожем на навигацию Google Планета Земля. Нажимайте клавиши со стрелками вправо или влево, чтобы вращать земной шар примерно на 5% от границы обзора справа или слева соответственно. Если он уменьшен, то он вращается в большой степени, а увеличенное изображение вращается в меньшей степени.Как повернуть влево или вправо в Цезие Карта на основе границ обзора
Уже просмотрел документацию для Viewer, Camera, Сцена и т. Д., Но не очевидно, как сделать что-то, что должно быть простым.
Возможность поворота фиксированного количества вправо или влево, но вы хотите повернуть количество в зависимости от ширины в разрезе. Как получить максимальную степень сверху, слева, справа, снизу для представления в цезие?
var viewer = new Cesium.Viewer('cesiumContainer', {
navigationHelpButton: false, animation: false, timeline: false
});
var camera = viewer.camera;
document.addEventListener('keydown', function(e) {
setKey(e);
}, false);
function setKey(event) {
if (event.keyCode == 39) { // right arrow
camera.rotateRight(Cesium.Math.toRadians(10.0));
} else if (event.keyCode == 37) { // left arrow
camera.rotateLeft(Cesium.Math.toRadians(10.0));
}
}
Чтобы проверить, посетить SandCastle приложение и вставить в Фрагмент кода JavaScript выше. Чтобы активировать привязки клавиатуры, нажмите полноэкранный режим, и клавиши со стрелками будут работать.
В качестве альтернативы, камера может использоваться для доступа к позиции Картография, но это только картографическое положение камеры, а не границы обзора.
var positionCartographic = camera.positionCartographic;
var height = positionCartographic.height;
var lat = positionCartographic.latitude;
var lon = positionCartographic.longitude + Cesium.Math.toRadians(10.0);
camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(lon, lat, height),
duration: 1.0
});
Здесь фиксированный угол добавляется к точке зрения центра, но угол должен быть процент от разницы между максимальным и минимальным значениями долготы с точки зрения степени; например angle = (maxLon - minLon)/20
Спасибо. Потрясающие! – JasonM1