您可以向 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: {}
)