首页 / 浏览问题 / WebGIS / 问题详情
首先我想要实现选取多个点实现飞行漫游的功能.
10EXP 2021年07月20日
//我的思路是在飞到一个点后,在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('飞行完成');

          }

2 个回答

你好,我添加了还是没有用,是怎么回事
10EXP 2021年07月21日
您好,飞行完成之后重置一下 scene.screenSpaceCameraController下面的属性:

scene.screenSpaceCameraController.enableRotate = true;
scene.screenSpaceCameraController.enableTranslate = true;
scene.screenSpaceCameraController.enableZoom = true;
scene.screenSpaceCameraController.enableTilt = true;
scene.screenSpaceCameraController.enableLook = true;
康鑫
1
6,077EXP 2021年07月20日
...