//我的思路是在飞到一个点后,在complete函数里调用函数飞下一个点。结果现在的问题是可以实现漫游,但是在漫游完成后,对地图不能进行缩放拖拽的功能了。
flyStart(idx) {
// let heading, pitch, roll, position;
this.currentIndex = idx;
let self = this;
let { heading, pitch, roll, position } = this.dataList[idx];
window.viewer.camera.flyTo({
destination: position,
orientation: {
heading: heading,
pitch: pitch,
roll: roll
},
duration: 2,
complete: () => {
self.currentIndex += 1;
if (self.currentIndex <= self.dataList.length) {
// 如果为真,则允许用户旋转相机。如果为假,相机将锁定到当前标题。此标志仅适用于2D和3D。
window.viewer.scene.screenSpaceCameraController.enableRotate = false;
// 如果为true,则允许用户平移地图。如果为假,相机将保持锁定在当前位置。此标志仅适用于2D和Columbus视图模式。
window.viewer.scene.screenSpaceCameraController.enableTranslate = false;
// 如果为真,允许用户放大和缩小。如果为假,相机将锁定到距离椭圆体的当前距离
window.viewer.scene.screenSpaceCameraController.enableZoom = false;
self.flyStart(self.currentIndex)
} else {
// 如果为真,则允许用户旋转相机。如果为假,相机将锁定到当前标题。此标志仅适用于2D和3D。
window.viewer.scene.screenSpaceCameraController.enableRotate = true;
// 如果为true,则允许用户平移地图。如果为假,相机将保持锁定在当前位置。此标志仅适用于2D和Columbus视图模式。
window.viewer.scene.screenSpaceCameraController.enableTranslate = true;
// 如果为真,允许用户放大和缩小。如果为假,相机将锁定到距离椭圆体的当前距离
window.viewer.scene.screenSpaceCameraController.enableZoom = true;
console.log('飞行完成');
}