Select platform: [Android](https://developers.google.com/maps/documentation/maps-3d/android-sdk/custom-camera-paths.md.txt "View this page for the Android platform docs.") [iOS](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/custom-camera-paths.md.txt "View this page for the iOS platform docs.") [JavaScript](https://developers.google.com/maps/documentation/javascript/3d/animate-camera.md.txt "View this page for the JavaScript platform docs.")

<br />

You can add camera path animations to your 3D map to provide a more immersive
experience for your users. Camera path animations can fly to, fly around, or be
combined to animate the
[`Camera`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt)
to a point on the map, including specifying its


altitude

and
[`altitudeMode`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt#/s:12GoogleMaps3D6CameraV12altitudeModeAA08AltitudeE0Ovp).

When configuring a
[`Camera`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt)
for an animation, you can set the
[`altitudeMode`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt#/s:12GoogleMaps3D6CameraV12altitudeModeAA08AltitudeE0Ovp)
property to specify how the camera's altitude is interpreted:

- [`AltitudeMode.absolute`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Enums/AltitudeMode.md.txt#/s:12GoogleMaps3D12AltitudeModeO8absoluteyA2CmF): Interprets the altitude as meters above mean sea level (the default value if not specified).
- [`AltitudeMode.relativeToGround`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Enums/AltitudeMode.md.txt#/s:12GoogleMaps3D12AltitudeModeO16relativeToGroundyA2CmF): Interprets the altitude as meters above the ground surface at the camera's center point.
- [`AltitudeMode.relativeToMesh`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Enums/AltitudeMode.md.txt#/s:12GoogleMaps3D12AltitudeModeO14relativeToMeshyA2CmF): Interprets the altitude as meters above the highest 3D mesh surface (such as buildings or terrain) at the camera's center point.

> [!NOTE]
> **Note:** [`altitudeMode`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt#/s:12GoogleMaps3D6CameraV12altitudeModeAA08AltitudeE0Ovp) on [`Camera`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt) only applies to [`flyCameraTo`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Extensions/View.md.txt#/s:7SwiftUI4ViewP12GoogleMaps3DAD13MapAnimatableRzrlE11flyCameraTo_8duration7trigger10completionAA15ModifiedContentVyxAD23EquatableChangeModifierVyqd__GGAD0I0V_Sdqd__yycSgtSQRd__lF) and [`flyCameraAround`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Extensions/View.md.txt#/s:7SwiftUI4ViewP12GoogleMaps3DAD13MapAnimatableRzrlE15flyCameraAround_8duration11repeatCount7trigger10completionAA15ModifiedContentVyxAD23EquatableChangeModifierVyqd__GGAD0I0V_S2dqd__yycSgtSQRd__lF) animations.

## Fly to

The following code sample demonstrates how to use the
[`flyCameraTo`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Extensions/View.md.txt#/s:7SwiftUI4ViewP12GoogleMaps3DAD13MapAnimatableRzrlE11flyCameraTo_8duration7trigger10completionAA15ModifiedContentVyxAD23EquatableChangeModifierVyqd__GGAD0I0V_Sdqd__yycSgtSQRd__lF)
modifier to animate the
[`Camera`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt)
to fly to a specific point on a 3D map.

```swift
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: {}
  )
```

## Fly around

The following code sample demonstrates how to use the
[`flyCameraAround`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Extensions/View.md.txt#/s:7SwiftUI4ViewP12GoogleMaps3DAD13MapAnimatableRzrlE15flyCameraAround_8duration11repeatCount7trigger10completionAA15ModifiedContentVyxAD23EquatableChangeModifierVyqd__GGAD0I0V_S2dqd__yycSgtSQRd__lF)
modifier to animate the
[`Camera`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Camera.md.txt)
to fly around a specific point on a 3D map.

```swift
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: {}
  )
```