Чтобы сделать 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: {}
)