我有2个不同的Cesium.Viewer实例,我想在用户缩放其中一个时同步2个查看器。
怎么做?
更新:在我的应用程序中,我有2个不同的Cesium.Viewer实例。但对于这个问题,我认为它与Cesium.Viewer的数量无关。所以我更新了如下问题:
我有2架飞机在Cesium.Viewer上飞行,如附图所示,一个在红色路线上(参考为红色飞机),另一个在红色路线上(参考为红色飞机)。
步骤1:我通过双击跟踪黄色平面,然后它看起来像pic-1;
第2步:我将它缩小到pic-2;
步骤3:我通过双击改变跟踪红色平面,它看起来像pic-3;
第四步:我把它缩小到pic-4;
每当我更改被跟踪的实体时(如步骤3),我需要再次手动缩小它。
那么,我的问题是如何在更改被跟踪的实体时保持缩放级别?
要保存和恢复,您可以使用此代码作为示例:
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应该在source czml中用于track。 Smth喜欢:
"viewFrom": {
"cartesian": [
-2080,
-1715,
779
]
},