运镜关键帧(序列化结构)—— 统一采用 five Mapview(地图态 / orbit)位姿。

Mapview 下相机绕 target(注视点 = orbit 轴心)旋转: 相机位置 = target - coordinatesToVector(longitude, latitude) × distance,视线恒指向 target。 这样「播放」「暂停后用户拖拽」「续播」均在同一 orbit 参数系下表达, 暂停即天然交还用户做左键 orbit / 右键平移(无需 look-from→orbit 转换,无跳变)。

interface DigitalCameraKeyframe {
    distance: number;
    fov: number;
    latitude: number;
    longitude: number;
    target: number[];
    thumbnail?: string;
    timeStamp: number;
    transition?: CameraTransition;
}

Properties

distance: number

相机到 target 的距离(m)

fov: number

视场角(度),表达视角「缩放」

latitude: number

俯仰角 latitude(rad)

longitude: number

水平角 longitude(rad)

target: number[]

orbit 目标点(= 注视点 / 旋转轴心),five 世界坐标 [x,y,z]

thumbnail?: string

关键帧缩略图 URL(编辑端封面,运行时忽略)。 约定存 COS 直传得到的持久化 URL;编辑期的本地 blob 预览不写入此字段。

timeStamp: number

时间点(ms),章节内相对时间

transition?: CameraTransition

到下一关键帧的过渡缓动(缺省 'linear')