您可以在 3D 地圖中加入攝影機路徑動畫,為使用者提供更身歷其境的體驗。攝影機路徑動畫可飛往、繞行或結合動畫,將 Camera 移至地圖上的某個點,包括指定其高度和altitudeMode。
為動畫設定 Camera 時,您可以設定 altitudeMode 屬性,指定攝影機高度的解讀方式:
AltitudeMode.absolute:將海拔高度解讀為平均海平面以上的公尺數 (如未指定,則為預設值)。AltitudeMode.relativeToGround:將高度解讀為相機中心點與地面的距離 (以公尺為單位)。AltitudeMode.relativeToMesh:將高度解讀為攝影機中心點最高 3D 網格表面 (例如建築物或地形) 上方的公尺數。
目的地
下列程式碼範例示範如何使用 flyCameraTo 修飾符,為 Camera 加上動畫效果,使其飛到 3D 地圖上的特定點。
Map(mode: .hybrid)
.flyCameraTo(
.init(
center: .init(
latitude: 47.6210296,
longitude: -122.3496903,
altitude: 585
),
heading: 149.0,
tilt: 77.0,
roll: 0.0,
range: 4000,
altitudeMode: .relativeToGround
),
duration: 5,
trigger: animate,
completion: {}
)
四處飛行
下列程式碼範例示範如何使用 flyCameraAround 修飾符,為 Camera 加上動畫,讓相機在 3D 地圖上繞著特定點飛行。
Map(mode: .hybrid)
.flyCameraAround(
.init(
center: .init(
latitude: 47.6210296,
longitude: -122.3496903,
altitude: 585
),
heading: 149.0,
tilt: 77.0,
roll: 0.0,
range: 3000,
altitudeMode: .relativeToGround
),
duration: 90,
repeatCount: 3,
trigger: flyAround,
completion: {}
)