mapcn-react-native
Reference

Renderer compatibility matrix

Capability deltas between MapLibre and Mapbox, and how mapcn's public API handles each.

Built from the real, committed CAPABILITIES constants each renderer adapter exports (components/ui/mapcn/map-renderer.tsx), not aspirational documentation -- these are what RendererCapabilities (map-types.ts) actually declares on each renderer.

CapabilityMapLibre RN 11Mapbox (rnmapbox) 10mapcn's handling
clusterMinPoints on ClusteringAccepted on both prop types; ignored with no effect on Mapbox, not silently dropped -- documented capability gap.
Location puck pulsingMapbox-only prop on MapLocationPuck; __DEV__ warning if passed on MapLibre.
Location puck scaleSame as above.
Location puck custom images (top/bearing/shadow)Same as above.
Location puck onPressMapLibre-only; __DEV__ warning if passed on Mapbox.
Location puck custom children (fully custom JS-rendered puck)MapLibre-only.
Cluster ref methods (getClusterExpansionZoom/getClusterLeaves)Full parity -- normalized signatures in MapSourceRef, no gap.
GeoJSON source + native clusteringFull parity via MapSource.
Unified layer style keys & expressions✓ (camelCase + style-spec expressions)✓ (identical camelCase + expressions)Shared verbatim -- no translation layer, see Custom layers & expressions.
Native feature state (setFeatureState/getFeatureState)Not used by any mapcn component -- selection everywhere uses filter expressions instead, which both renderers support identically.
querySourceFeaturesMapbox-only escape hatch, reachable via the raw mapRef.
Globe projection✓ (projection="globe")Mapbox-only MapView prop, reachable via Map's mapbox escape-hatch prop bag.
Offline mapsout of scopeout of scopeNeither renderer's offline APIs (OfflineManager, modules/offline) are wrapped by mapcn in 2.0.

MapLibre specifics · Mapbox specifics · Location puck · Clustering

On this page