MapConductor Heatmap is a map-implementation-agnostic heatmap overlay for the MapConductor iOS SDK. It renders heatmap data as a tile-based overlay so it works with any map implementation (Google Maps, MapLibre, MapKit, Mapbox, ArcGIS, etc.).
https://docs-ios.mapconductor.com/setup/
Place HeatmapOverlay inside any XxxMapView content block and add points with HeatmapPoints:
XxxMapView(state: mapState){HeatmapOverlay(
state:HeatmapOverlayState(radiusPx:20, opacity:0.7)){HeatmapPoints([HeatmapPointState(
position:GeoPoint(latitude:35.6762, longitude:139.6503),
weight:1.0,
id:"point-1"),HeatmapPointState(
position:GeoPoint(latitude:35.6895, longitude:139.6917),
weight:2.5,
id:"point-2"),])}}For large datasets, use HeatmapPoints to add all points in a single update:
letpointStates:[HeatmapPointState]=buildPointList()XxxMapView(state: mapState){HeatmapOverlay(state:HeatmapOverlayState(radiusPx:20)){HeatmapPoints(pointStates)}}Use HeatmapOverlayState to control heatmap properties dynamically:
@StateprivatevarheatmapState=HeatmapOverlayState(
radiusPx:20,
opacity:0.7,
gradient:.default
)
// Update dynamically
heatmapState.radiusPx =30
heatmapState.opacity =0.5XxxMapView(state: mapState){HeatmapOverlay(state: heatmapState){HeatmapPoints(pointStates)}}letgradient=HeatmapGradient(stops:[HeatmapGradientStop(position:0.0, color:UIColor(red:0, green:0, blue:1, alpha:0)), // transparent blue
HeatmapGradientStop(position:0.5, color:UIColor(red:0, green:1, blue:0, alpha:1)), // green
HeatmapGradientStop(position:1.0, color:UIColor(red:1, green:0, blue:0, alpha:1)), // red
])@StateprivatevarheatmapState=HeatmapOverlayState(gradient: gradient)HeatmapPointState allows per-point customization:
letpointState=HeatmapPointState(
position:GeoPoint(latitude:35.6762, longitude:139.6503),
weight:3.0,
id:"point-1")| Property | Type | Default | Description |
|---|---|---|---|
radiusPx | Int | 20 | Blur radius of each point in pixels |
opacity | Double | 0.7 | Layer opacity (0.0–1.0) |
gradient | HeatmapGradient | .default | Color gradient |
maxZoom | Int | 22 | Maximum zoom level for rendering |
Green (rgb(102, 225, 0)) at position 0.2 → Red (rgb(255, 0, 0)) at position 1.0.