CameraManager

public class CameraManager

An object that manages a camera’s view lifecycle.

  • Creates a new Camera object to fit a given array of coordinates.

    Note: This method does not set the map’s camera to the new values. You must call

    Declaration

    Swift

    public func camera(for coordinates: [CLLocationCoordinate2D]) -> CameraOptions

    Parameters

    coordinates

    Array of coordinates that should fit within the new viewport.

    Return Value

    A Camera object that contains all coordinates within the viewport.

  • Returns the camera that best fits the given coordinate bounds, with optional edge padding, bearing, and pitch values.

    Declaration

    Swift

    public func camera(for coordinateBounds: CoordinateBounds,
                       edgePadding: UIEdgeInsets = UIEdgeInsets.zero,
                       bearing: CGFloat = 0.0,
                       pitch: CGFloat = 0.0) -> CameraOptions

    Parameters

    coordinateBounds

    The coordinate bounds that will be displayed within the viewport.

    edgePadding

    The new padding to be used by the camera. By default, this value is UIEdgeInsets.zero.

    bearing

    The new bearing to be used by the camera. By default, this value is 0.

    pitch

    The new pitch to be used by the camera. By default, this value is 0.

    Return Value

    A set of options CameraOptions that represents properties of the Camera.

  • Returns the camera that best fits the given geometry, with optional edge padding, bearing, and pitch values.

    Declaration

    Swift

    public func camera(fitting geometry: Geometry,
                       edgePadding: UIEdgeInsets = UIEdgeInsets.zero,
                       bearing: CGFloat = 0.0,
                       pitch: CGFloat = 0.0) -> CameraOptions

    Parameters

    geometry

    The geoemtry that will be displayed within the viewport.

    edgePadding

    The new padding to be used by the camera. By default, this value is UIEdgeInsets.zero.

    bearing

    The new bearing to be used by the camera. By default, this value is 0.

    pitch

    The new pitch to be used by the camera. By default, this value is 0.

    Return Value

    A set of options CameraOptions that represents properties of the Camera.

  • Returns the coordinate bounds for a given Camera object’s viewport.

    Declaration

    Swift

    public func coordinateBounds(for camera: CameraOptions) -> CoordinateBounds

    Parameters

    camera

    The camera that the coordinate bounds will be returned for.

    Return Value

    CoordinateBounds for the given Camera

  • Transition the map’s viewport to a new camera.

    Declaration

    Swift

    public func setCamera(to targetCamera: CameraOptions, animated: Bool = false, duration: TimeInterval = 0, completion: ((UIViewAnimatingPosition) -> Void)? = nil)

    Parameters

    targetCamera

    The target camera to transition to.

    animated

    Set to true if transition should be animated. false by default.

    duration

    Controls the duration of the animation transition. Must be greater than zero if animated is true.

    completion

    The completion block to be called after an animated transition. Only called if animated is true.

  • Transition the camera view to a new map camera based on individual camera properties, optionally animating the change and executing a completion block after the transition occurs.

    Declaration

    Swift

    public func setCamera(centerCoordinate: CLLocationCoordinate2D? = nil,
                          padding: UIEdgeInsets? = nil,
                          anchor: CGPoint? = nil,
                          zoom: CGFloat? = nil,
                          bearing: CLLocationDirection? = nil,
                          pitch: CGFloat? = nil,
                          animated: Bool = false,
                          duration: TimeInterval = 0,
                          completion: ((UIViewAnimatingPosition) -> Void)? = nil)

    Parameters

    centerCoordinate

    The new center coordinate the viewport will transition to.

    padding

    The new edge insets the viewport will use to to apply padding.

    anchor

    The new anchor point the viewport will use.

    zoom

    The new zoom level the viewport will transition to.

    bearing

    The bearing the viewport will rotate to.

    pitch

    The new pitch the viewport will transition to.

    animated

    A boolean indicating if the change should be animated. By default, this value is false

    duration

    The TimeInterval for the animation to be completed

    completion

    The completion block to execute after the transition has occurred.

  • Undocumented

    Declaration

    Swift

    public func cancelTransitions()
  • Reset the map’s camera to the default style camera.

    Declaration

    Swift

    public func resetPosition()
  • Resets the map rotation to a north bearing of 0 degrees.

    Declaration

    Swift

    public func resetNorth(_ animated: Bool = false)

    Parameters

    animated

    A boolean indicating if the change should be animated. By default, this value is false.

  • Transitions the viewport to fit a given set of new coordinate bounds, optionally animating the change.

    This method also accounts for any UIEdgeInsets that may have been set through the the CameraView‘s padding property.

    Declaration

    Swift

    public func transitionCoordinateBounds(newCoordinateBounds: CoordinateBounds,
                                           animated: Bool = false)

    Parameters

    newCoordinateBounds

    The coordinate bounds that will be displayed within the viewport.

    animated

    A boolean indicating if the change should be animated. Defaults to false.

  • Transitions the viewport to fit a given set of new coordinate bounds, specifying a custom edge padding, an optional animation change, and an optional completion block to execute after the transition occurs.

    Declaration

    Swift

    public func transitionCoordinateBounds(to newCoordinateBounds: CoordinateBounds,
                                           edgePadding: UIEdgeInsets,
                                           animated: Bool = false,
                                           completion: ((UIViewAnimatingPosition) -> Void)? = nil)

    Parameters

    newCoordinateBounds

    The new coordinate bounds that will be displayed within the viewport.

    edgePadding

    The padding the viewport will adjust itself by after transitioning to the new viewport.

    animated

    A boolean indicating if the change should be animated. Defaults to false.

    completion

    An optional function to execute after the transition has occurred.

  • Transitions the viewport to fit a given array of new coordinates, specifying a custom edge padding an optional animation change.

    Declaration

    Swift

    public func transitionVisibleCoordinates(newCoordinates: [CLLocationCoordinate2D],
                                             edgePadding: UIEdgeInsets,
                                             animated: Bool = false)

    Parameters

    newCoordinates

    The coordinate bounds that will be displayed within the viewport.

    edgePadding

    The padding the viewport will adjust itself by after transitioning to the new viewport.

    animated

    A boolean indicating if the change should be animated. Defaults to false.

  • Transitions the viewport to fit a given array of new coordinates, specifying a custom edge padding, an optional animation change, and an optional completion block to execute after the transition occurs.

    Declaration

    Swift

    public func transitionVisibleCoordinates(to newCoordinates: [CLLocationCoordinate2D],
                                             edgePadding: UIEdgeInsets,
                                             bearing: CLLocationDirection,
                                             duration: TimeInterval,
                                             animated: Bool = false,
                                             completion: ((UIViewAnimatingPosition) -> Void)? = nil)

    Parameters

    newCoordinates

    The array of coordinates that will be displayed within the viewport.

    edgePadding

    The padding the viewport will adjust itself by after transitioning to the new viewport.

    bearing

    The bearing the viewport will adjust itself after transitioning to the new viewport

    animated

    A boolean indicating if the change should be animated. Defaults to false.

    completion

    An optional closure to execute after the transition has occurred.

  • Moves the viewpoint to a different location using a transition animation that evokes powered flight and an optional transition duration and timing function It seamlessly incorporates zooming and panning to help the user find his or her bearings even after traversing a great distance.

    NOTE: Keep in mind the lifecycle of the CameraAnimator returned by this method. If a CameraAnimator is destroyed, before the animation is finished, the animation will be interrupted and completion handlers will be called.

    Declaration

    Swift

    public func fly(to camera: CameraOptions,
                    duration: TimeInterval? = nil,
                    completion: AnimationCompletion? = nil) -> CameraAnimator?

    Parameters

    camera

    The camera options at the end of the animation. Any camera parameters that are nil will not be animated.

    duration

    Duration of the animation, measured in seconds. If nil, a suitable calculated duration is used.

    completion

    Completion handler called when the animation stops

    Return Value

    The optional CameraAnimator that will execute the FlyTo animation

  • Convenience to create a CameraAnimator and will add it to a list of CameraAnimators to track the lifecycle of that animation.

    NOTE: Keep in mind the lifecycle of a CameraAnimator. If a CameraAnimator is destroyed, before the animation is finished, the animation will be interrupted and completion handlers will be called.

    Declaration

    Swift

    public func makeCameraAnimator(duration: TimeInterval,
                                   timingParameters parameters: UITimingCurveProvider,
                                   animationOwner: AnimationOwner = .unspecified) -> CameraAnimator

    Parameters

    duration

    The duration of the animation, in seconds.

    timingParameters

    The object providing the timing information. This object must adopt the UITimingCurveProvider protocol.

    animationOwner

    Property that conforms to AnimationOwnerProtocol to represent who owns that animation.

    Return Value

    A class that represents an animator with the provided configuration.

  • Convenience to create a CameraAnimator and will add it to a list of CameraAnimators to track the lifecycle of that animation.

    NOTE: Keep in mind the lifecycle of a CameraAnimator. If a CameraAnimator is destroyed, before the animation is finished, the animation will be interrupted and completion handlers will be called.

    Declaration

    Swift

    public func makeCameraAnimator(duration: TimeInterval,
                                   curve: UIView.AnimationCurve,
                                   animationOwner: AnimationOwner = .unspecified,
                                   animations: (() -> Void)? = nil) -> CameraAnimator

    Parameters

    duration

    The duration of the animation, in seconds.

    curve

    The UIKit timing curve to apply to the animation.

    animationOwner

    Property that conforms to AnimationOwnerProtocol to represent who owns that animation.

    animations

    The block containing the animations. This block has no return value and takes no parameters. Use this block to modify any animatable view properties. When you start the animations, those properties are animated from their current values to the new values using the specified animation parameters.

    Return Value

    A class that represents an animator with the provided configuration.

  • Convenience to create a CameraAnimator and will add it to a list of CameraAnimators to track the lifecycle of that animation.

    NOTE: Keep in mind the lifecycle of a CameraAnimator. If a CameraAnimator is destroyed, before the animation is finished, the animation will be interrupted and completion handlers will be called.

    Declaration

    Swift

    public func makeCameraAnimator(duration: TimeInterval,
                                   controlPoint1 point1: CGPoint,
                                   controlPoint2 point2: CGPoint,
                                   animationOwner: AnimationOwner = .unspecified,
                                   animations: (() -> Void)? = nil) -> CameraAnimator

    Parameters

    duration

    The duration of the animation, in seconds.

    controlPoint1

    The first control point for the cubic Bézier timing curve.

    controlPoint2

    The second control point for the cubic Bézier timing curve.

    animationOwner

    Property that conforms to AnimationOwnerProtocol to represent who owns that animation.

    animations

    The block containing the animations. This block has no return value and takes no parameters. Use this block to modify any animatable view properties. When you start the animations, those properties are animated from their current values to the new values using the specified animation parameters.

    Return Value

    A class that represents an animator with the provided configuration.

  • Convenience to create a CameraAnimator and will add it to a list of CameraAnimators to track the lifecycle of that animation.

    NOTE: Keep in mind the lifecycle of a CameraAnimator. If a CameraAnimator is destroyed, before the animation is finished, the animation will be interrupted and completion handlers will be called.

    Declaration

    Swift

    public func makeCameraAnimator(duration: TimeInterval,
                                   dampingRatio ratio: CGFloat,
                                   animationOwner: AnimationOwner = .unspecified,
                                   animations: (() -> Void)? = nil) -> CameraAnimator

    Parameters

    duration

    The duration of the animation, in seconds.

    dampingRatio

    The damping ratio to apply to the initial acceleration and oscillation. To smoothly decelerate the animation without oscillation, specify a value of 1. Specify values closer to 0 to create less damping and more oscillation.

    animationOwner

    Property that conforms to AnimationOwnerProtocol to represent who owns that animation.

    animations

    The block containing the animations. This block has no return value and takes no parameters. Use this block to modify any animatable view properties. When you start the animations, those properties are animated from their current values to the new values using the specified animation parameters.

    Return Value

    A class that represents an animator with the provided configuration.