VMBaseMapSyncable

@objc
public protocol VMBaseMapSyncable : NSObjectProtocol

Protocol for integrating a base map (Apple Maps, Google Maps, etc.) beneath a VMMapView venue overlay. The SDK handles all camera synchronization internally when a conforming object is assigned to baseMap.

Implement this protocol to wrap a platform map view (MKMapView, GMSMapView, etc.) so the SDK can keep its camera in lockstep with the venue overlay.

Since

2.2.6
  • The underlying platform map view (MKMapView, GMSMapView, etc.).

    Declaration

    Swift

    var view: UIView { get }
  • Move the base map camera to match the venue overlay.

    Implementations should apply the camera change instantly (no animation) and suppress implicit Core Animation transitions. Use whichever parameters are natural for the platform (e.g., altitude for Apple Maps, zoom for Google Maps).

    Declaration

    Swift

    func syncCamera(center: CLLocationCoordinate2D, altitude: Double, zoom: Float, heading: Double)

    Parameters

    center

    Target center coordinate.

    altitude

    Camera altitude in meters (distance from ground).

    zoom

    Venue overlay zoom level (MapLibre scale).

    heading

    Camera heading in degrees (0 = north).

  • The base map’s current camera center coordinate.

    Declaration

    Swift

    func cameraCenter() -> CLLocationCoordinate2D
  • The base map’s current camera altitude in meters.

    Declaration

    Swift

    func cameraAltitude() -> Double
  • The base map’s current camera heading in degrees.

    Declaration

    Swift

    func cameraHeading() -> Double
  • Apply one-time configuration to prepare the base map for overlay sync (e.g., disable user interaction, disable pitch, fix safe-area insets).

    Declaration

    Swift

    func configure()
  • The maximum zoom level the base map supports. The venue overlay will show an opaque background above this level.

    Declaration

    Swift

    var maxZoom: Float { get }
  • Called by the SDK. Set this closure so the adapter can notify the SDK when the base map moves independently (e.g., via accessibility tools).

    Declaration

    Swift

    var onCameraChange: (() -> Void)? { get set }