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
centerTarget center coordinate.
altitudeCamera altitude in meters (distance from ground).
zoomVenue overlay zoom level (MapLibre scale).
headingCamera 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 }