根据画布的鼠标输入修改相机的位置和方向。
| Name | Type | Description |
|---|---|---|
scene |
Scene | 场景对象。 |
Members
设置 2D 和 Columbus 视图中回弹动画的持续时间(以秒为单位)。
-
Default Value:
3.0
禁用时,将忽略
maximumZoomDistance 和 minimumZoomDistance 的值。
还与 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
lookEventTypes : CameraEventType|Array|undefined
允许用户改变相机查看方向的输入。仅适用于 3D 和 Columbus 视图模式。
类型可以是 CameraEventType、undefined、具有 eventType
和 modifier 属性的对象(其类型为 CameraEventType 和 KeyboardEventModifier),
或上述任意类型的数组。
-
Default Value:
{ eventType : CameraEventType.LEFT_DRAG, modifier : KeyboardEventModifier.SHIFT }
一个范围在
[0, 1) 的参数,用于将各种用户输入的范围限制为每动画帧窗口宽度/高度的百分比。
这有助于在低帧率情况下保持相机受控。
-
Default Value:
0.1
相对于椭球体法线的角度,限制用户可倾斜相机的最大角度。如果为
undefined,则相机倾斜角度不受限制。
-
Default Value:
undefined
Example:
// 防止相机倾斜到椭球体表面以下
viewer.scene.screenSpaceCameraController.maximumTiltAngle = Math.PI / 2.0;
缩放时相机位置的最大幅度(以米为单位)。默认为正无穷。
-
Default Value:
Number.POSITIVE_INFINITY
相机在测试与地形碰撞之前必须达到的最小高度。当使用 WGS84 以外的椭球体时,默认为 scene.ellipsoid.minimumRadius * 0.0025。
-
Default Value:
15000.0 或 scene.ellipsoid.minimumRadius * 0.0025。
使用惯性缩放时,相机在测试与地形碰撞之前必须保持的最小距离。当使用 WGS84 以外的椭球体时,默认为 scene.ellipsoid.minimumRadius * 0.00063。
-
Default Value:
4000.0 或 scene.ellipsoid.minimumRadius * 0.00063
相机在拾取地形或场景内容而非椭球体之前必须达到的最小高度。当使用 WGS84 以外的椭球体时,默认为 scene.ellipsoid.minimumRadius * 0.025。
-
Default Value:
150000.0 或 scene.ellipsoid.minimumRadius * 0.025
当点击发生在天空或空间中时,相机在从旋转追踪球切换到自由查看之前必须达到的最小高度。当使用 WGS84 以外的椭球体时,默认为 ellipsoid.minimumRadius * 1.175。
-
Default Value:
7500000.0 或 scene.ellipsoid.minimumRadius * 1.175
缩放时相机位置的最小幅度(以米为单位)。默认为 1.0。
-
Default Value:
1.0
rotateEventTypes : CameraEventType|Array|undefined
允许用户在 3D 和 Columbus 视图模式下围绕地球或其他对象旋转的输入。
类型可以是 CameraEventType、undefined、具有 eventType
和 modifier 属性的对象(其类型为 CameraEventType 和 KeyboardEventModifier),
或上述任意类型的数组。
-
Default Value:
CameraEventType.LEFT_DRAG
tiltEventTypes : CameraEventType|Array|undefined
允许用户在 3D 和 Columbus 视图中倾斜相机,或在 2D 中扭转相机的输入。
类型可以是 CameraEventType、undefined、具有 eventType
和 modifier 属性的对象(其类型为 CameraEventType 和 KeyboardEventModifier),
或上述任意类型的数组。
-
Default Value:
[CameraEventType.MIDDLE_DRAG, CameraEventType.PINCH, {
eventType : CameraEventType.LEFT_DRAG,
modifier : KeyboardEventModifier.CTRL
}, {
eventType : CameraEventType.RIGHT_DRAG,
modifier : KeyboardEventModifier.CTRL
}]
translateEventTypes : CameraEventType|Array|undefined
允许用户在地图上平移的输入。仅适用于 2D 和 Columbus 视图模式。
类型可以是 CameraEventType、undefined、具有 eventType
和 modifier 属性的对象(其类型为 CameraEventType 和 KeyboardEventModifier),
或上述任意类型的数组。
-
Default Value:
CameraEventType.LEFT_DRAG
zoomEventTypes : CameraEventType|Array|undefined
允许用户缩放的输入。
类型可以是 CameraEventType、undefined、具有 eventType
和 modifier 属性的对象(其类型为 CameraEventType 和 KeyboardEventModifier),
或上述任意类型的数组。
-
Default Value:
[CameraEventType.RIGHT_DRAG, CameraEventType.WHEEL, CameraEventType.PINCH]
相机缩放速度的倍数。
-
Default Value:
5.0
Methods
移除此对象持有的鼠标监听器。
对象一旦被销毁,就不应再使用;调用
对象一旦被销毁,就不应再使用;调用
isDestroyed 以外的任何函数将导致 DeveloperError 异常。因此,
应像示例中那样将返回值(undefined)赋给该对象。
Throws:
-
DeveloperError : 此对象已被销毁,即已调用 destroy()。
Example:
controller = controller && controller.destroy();
See:
Returns:
如果此对象已被销毁则返回
true;否则返回 false。
