我有2个不同的Cesium.Viewer实例,我想在用户缩放其中一个时同步2个查看器。
怎么做?
更新: 在我的应用程序中,我有2个不同的Cesium.Viewer实例。但对于这个问题,我认为它与Cesium.Viewer的数量无关。所以我更新了以下问题:
我有2架飞机在Cesium.Viewer上飞行,如附图所示,一个在红色路线上(参考为红色飞机),另一个在红色路线上(参考为红色飞机)。
步骤1:我通过双击跟踪黄色平面,然后它看起来像pic-1;
步骤2:我将其缩小为pic-2;
步骤3:我通过双击改变跟踪红色平面,它看起来像pic-3;
步骤4:我将其缩小为pic-4;
每当我更改被跟踪的实体时(如第3步),我需要再次手动缩小它。
所以,我的问题是如何在更改被跟踪的实体时保持缩放级别?
答案 0 :(得分:0)
要保存和还原,您可以使用以下代码作为示例:
var viewer = new Cesium.Viewer('cesiumContainer');
var savedView = {};
Cesium.CzmlDataSource.load('../../SampleData/simple.czml').then(function(dataSource) {
viewer.dataSources.add(dataSource);
Sandcastle.addToolbarButton('Save View', function() {
savedView.offset = viewer.scene.camera.position.clone();
});
Sandcastle.addToolbarButton('Restore View', function() {
viewer.trackedEntity._viewFrom._value = savedView.offset;
});
});
注意:viewFrom param应该在源czml中进行跟踪。像这样:
"viewFrom": {
"cartesian": [
-2080,
-1715,
779
]
},