ScreenSpaceCameraController

new Cesium.ScreenSpaceCameraController(scene)

根据对 canvas 的鼠标输入来修改相机的位置和方向。
Name Type Description
scene Scene 场景。

Members

设置 2D 和 Columbus 视图中回弹动画的持续时间(秒)。
Default Value: 3.0

enableCollisionDetection : boolean

当禁用时,maximumZoomDistanceminimumZoomDistance 的值将被忽略。 还与 Cesium3DTileset#enableCollision 配合使用,以防止相机穿过或位于 3D Tileset 表面下方。 这还可能影响在 3D Tiles 上使用 HeightReference.CLAMP_TO_GROUND 时的钳制行为。
Default Value: true
如果为 true,则允许根据 enableTranslate、enableZoom、 enableRotate、enableTilt 和 enableLook 等标志有条件地接受输入。如果为 false,则禁用所有输入。 注意:此设置用于临时场景,例如相机飞行和 区域拖拽选择(参见 Picking 演示)。通常在这类事件开始时设为 false, 并在完成时设为 true。要在相机飞行结束后仍保持输入禁用, 必须使用其他布尔值(enableTranslate、 enableZoom、enableRotate、enableTilt 和 enableLook)。
Default Value: true
如果为 true,允许用户使用自由查看。如果为 false,则只能通过平移 或旋转来改变相机视角方向。此标志仅适用于 3D 和 Columbus 视图模式。
Default Value: true
如果为 true,允许用户旋转世界,这会平移用户的位置。 此标志仅适用于 2D 和 3D。
Default Value: true
如果为 true,允许用户倾斜相机。如果为 false,相机锁定为当前朝向。 此标志仅适用于 3D 和 Columbus 视图。
Default Value: true
如果为 true,允许用户在地图上平移。如果为 false,相机锁定在当前位置。 此标志仅适用于 2D 和 Columbus 视图模式。
Default Value: true
如果为 true,允许用户放大和缩小。如果为 false,相机锁定为距椭球体的当前距离。
Default Value: true
范围 [0, 1) 内的一个参数,用于确定相机 由于惯性会继续旋转多长时间。 值为零时,相机将没有惯性。
Default Value: 0.9
范围 [0, 1) 内的一个参数,用于确定相机 由于惯性会继续平移多长时间。 值为零时,相机将没有惯性。
Default Value: 0.9
范围 [0, 1) 内的一个参数,用于确定相机 由于惯性会继续缩放多长时间。 值为零时,相机将没有惯性。
Default Value: 0.8
允许用户输入以改变相机查看方向的输入。这仅适用于 3D 和 Columbus 视图模式。

类型可以是 CameraEventTypeundefined、包含类型为 CameraEventTypeKeyboardEventModifiereventTypemodifier 属性的对象, 或上述任意类型的数组。

Default Value: { eventType : CameraEventType.LEFT_DRAG, modifier : KeyboardEventModifier.SHIFT }
范围 [0, 1) 内的一个参数,用于将 各种用户输入的范围限制为每个动画帧窗口宽度/高度的某个百分比。 这有助于在低帧率情况下保持相机受控。
Default Value: 0.1

maximumTiltAngle : number|undefined

相对于椭球体法线的角度,限制用户可以倾斜相机的最大幅度。如果为 undefined,则相机倾斜角度不受限制。
Default Value: undefined
Example:
// Prevent the camera from tilting below the ellipsoid surface
viewer.scene.screenSpaceCameraController.maximumTiltAngle = Math.PI / 2.0;
缩放时相机位置的最大幅值(米)。默认为正无穷大。
Default Value: Number.POSITIVE_INFINITY

minimumCollisionTerrainHeight : number

在进行与地形的碰撞检测之前,相机必须达到的最小高度。当使用 WGS84 之外的其他椭球体时,默认为 scene.ellipsoid.minimumRadius * 0.0025。
Default Value: 15000.0 or scene.ellipsoid.minimumRadius * 0.0025.

minimumPickingTerrainDistanceWithInertia : number

当使用惯性缩放时,在进行与地形的碰撞检测之前相机必须达到的最小距离。当使用 WGS84 之外的其他椭球体时,默认为 scene.ellipsoid.minimumRadius * 0.00063。
Default Value: 4000.0 or scene.ellipsoid.minimumRadius * 0.00063

minimumPickingTerrainHeight : number

在拾取地形或场景内容而非椭球体之前,相机必须达到的最小高度。当使用 WGS84 之外的其他椭球体时,默认为 scene.ellipsoid.minimumRadius * 0.025。
Default Value: 150000.0 or scene.ellipsoid.minimumRadius * 0.025
当点击源自已天空或空间时,在从旋转轨迹球切换到 自由查看之前相机必须达到的最小高度。当使用 WGS84 之外的其他椭球体时,默认为 ellipsoid.minimumRadius * 1.175。
Default Value: 7500000.0 or scene.ellipsoid.minimumRadius * 1.175
缩放时相机位置的最小幅值(米)。默认为 1.0。
Default Value: 1.0
允许用户输入以围绕地球或另一个对象旋转的输入。这仅适用于 3D 和 Columbus 视图模式。

类型可以是 CameraEventTypeundefined、包含类型为 CameraEventTypeKeyboardEventModifiereventTypemodifier 属性的对象, 或上述任意类型的数组。

Default Value: CameraEventType.LEFT_DRAG
允许用户输入以在 3D 和 Columbus 视图中倾斜或在 2D 中扭转的输入。

类型可以是 CameraEventTypeundefined、包含类型为 CameraEventTypeKeyboardEventModifiereventTypemodifier 属性的对象, 或上述任意类型的数组。

Default Value: [CameraEventType.MIDDLE_DRAG, CameraEventType.PINCH, { eventType : CameraEventType.LEFT_DRAG, modifier : KeyboardEventModifier.CTRL }, { eventType : CameraEventType.RIGHT_DRAG, modifier : KeyboardEventModifier.CTRL }]
允许用户输入以在地图上平移的输入。这仅适用于 2D 和 Columbus 视图模式。

类型可以是 CameraEventTypeundefined、包含类型为 CameraEventTypeKeyboardEventModifiereventTypemodifier 属性的对象, 或上述任意类型的数组。

Default Value: CameraEventType.LEFT_DRAG
允许用户输入以放大/缩小的输入。

类型可以是 CameraEventTypeundefined、包含类型为 CameraEventTypeKeyboardEventModifiereventTypemodifier 属性的对象, 或上述任意类型的数组。

Default Value: [CameraEventType.RIGHT_DRAG, CameraEventType.WHEEL, CameraEventType.PINCH]
相机缩放速度的倍数。
Default Value: 5.0

Methods

移除该对象持有的鼠标监听器。

对象一旦被销毁,就不应再使用;调用 isDestroyed 之外的任何函数 都会抛出 DeveloperError 异常。因此, 应像示例中那样将返回值(undefined)赋给该对象。
Throws:
Example:
controller = controller && controller.destroy();
See:
如果此对象已被销毁则返回 true,否则返回 false。

如果此对象已被销毁,就不应再使用;调用 isDestroyed 之外的任何函数 都会抛出 DeveloperError 异常。
Returns:
true 如果此对象已被销毁;否则为 false
See:
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。