Skip to content

Modules Overview

The repository is split into independent Swift packages so each application can depend only on the providers and utilities it actually uses. A typical app depends on MapConductorCore plus one provider module.

Package repositoryProductMain types
ios-sdk-coreMapConductorCoreGeoPoint, GeoRectBounds, MapCameraPosition, Marker, Circle, Polyline, Polygon, GroundImage, InfoBubble, RasterLayer
ios-for-googlemapsMapConductorForGoogleMapsGoogleMapViewState, GoogleMapView, GoogleMapDesign
ios-for-mapboxMapConductorForMapboxMapboxViewState, MapboxMapView, MapboxMapDesign
ios-for-mapkitMapConductorForMapKitMapKitViewState, MapKitMapView, MapKitMapDesign
ios-for-maplibreMapConductorForMapLibreMapLibreViewState, MapLibreMapView, MapLibreDesign
ios-for-arcgisMapConductorForArcGISArcGISMapViewState, ArcGISMapView, ArcGISMapDesign
ios-heatmapMapConductorHeatmapHeatmapOverlay, HeatmapOverlayState, HeatmapPointView, HeatmapPoints
ios-marker-clusterMapConductorMarkerClusterMarkerClusterGroup, MarkerClusterGroupState, MarkerClusterStrategy

ios-sdk-core contains provider-independent types:

  • Geometry: GeoPoint, GeoRectBounds
  • Camera: MapCameraPosition, MapPaddings, VisibleRegion
  • Map state protocol: MapViewStateProtocol
  • Overlay views: Marker, Polyline, Polygon, Circle, GroundImage, InfoBubble, RasterLayer
  • Overlay states: MarkerState, PolylineState, PolygonState, CircleState, GroundImageState
  • Marker icons: DefaultMarkerIcon, ImageIcon, ImageDefaultIcon, BitmapIcon
  • Builder utilities: MapViewContentBuilder, ForArray

All provider packages build on MapConductorCore.

Provider packages render the common API through a native map SDK. Each provider module supplies a SwiftUI map view, a concrete map view state, provider-specific map design types, overlay controller bindings, and AnyMapViewHolder access through getMapViewHolder().

Adding multiple provider modules is valid when an app supports provider switching. The common overlay declarations can be shared, but the provider state and map view type remain provider-specific.

Use optional packages only on screens that need those features. They integrate with the same provider map content closure as the core overlays.

  • MapConductorHeatmap adds tile-based heatmap rendering with HeatmapOverlay, HeatmapPointView, HeatmapPoints, and HeatmapOverlayState.
  • MapConductorMarkerCluster adds marker clustering with MarkerClusterGroup, MarkerClusterGroupState, and MarkerClusterStrategy.
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.0.4"),
.package(url: "https://github.com/MapConductor/ios-for-googlemaps", from: "1.0.4"),
],
targets: [
.target(
name: "App",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForGoogleMaps", package: "ios-for-googlemaps"),
]
)
]
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.0.4"),
.package(url: "https://github.com/MapConductor/ios-for-googlemaps", from: "1.0.4"),
.package(url: "https://github.com/MapConductor/ios-heatmap", from: "1.1.0"),
.package(url: "https://github.com/MapConductor/ios-marker-cluster", from: "1.0.1"),
],
targets: [
.target(
name: "App",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForGoogleMaps", package: "ios-for-googlemaps"),
.product(name: "MapConductorHeatmap", package: "ios-heatmap"),
.product(name: "MapConductorMarkerCluster", package: "ios-marker-cluster"),
]
)
]