gpt4 book ai didi

javascript - 场景转换后设置相机位置

转载 作者:行者123 更新时间:2023-11-30 17:14:23 24 4
gpt4 key购买 nike

在 Cesium SandcaSTLe 应用程序中,我编辑了 Camera 教程以包含以下代码片段:

window.scene = scene;
scene.morphComplete.addEventListener(function (){
console.log('Morph completed...');
var west = Cesium.Math.toRadians(10);
var east = Cesium.Math.toRadians(40);
var south = Cesium.Math.toRadians(35);
var north = Cesium.Math.toRadians(45);
var rectangle = new Cesium.Rectangle(west,south,east,north);
window.scene.camera.viewRectangle(rectangle);
console.log('Camera view rectangle updated...');
});

上面的代码 Hook 到 morph complete 事件,一旦场景转换完成, View 矩形就会设置为欧洲的一个区域。至少这是我预期的行为。观察到的行为是morph完成后,Cesium v​​iew rectangle在海外。我的问题是如何在场景转换后设置 map View 矩形?

最佳答案

看起来这是我们相机处理中的一个错误,显然我们在触发 morphComplete 事件后最后一次设置了相机。

您可以通过在自己控制相机之前等待一个动画帧通过来解决这个问题。例如:

scene.morphComplete.addEventListener(function (){
Cesium.requestAnimationFrame(function() { // This is the workaround.
console.log('Morph completed...');
var west = Cesium.Math.toRadians(10);
var east = Cesium.Math.toRadians(40);
var south = Cesium.Math.toRadians(35);
var north = Cesium.Math.toRadians(45);
var rectangle = new Cesium.Rectangle(west,south,east,north);
window.scene.camera.viewRectangle(rectangle);
console.log('Camera view rectangle updated...');
});
});

我刚刚提交了 Issue #2203为此。

关于javascript - 场景转换后设置相机位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com