Skip to content

Overview

Introduction

MapLibre Compose is a Compose Multiplatform wrapper around the MapLibre SDKs for rendering interactive maps. You can use it to add maps to your Compose UIs on Android, iOS, Desktop, and Web.

Usage

Status

A large subset of MapLibre's features are already supported, but the full breadth of the MapLibre SDKs is not yet covered. What is already supported may have bugs. API stability is not yet guaranteed; we're still exploring how best to express an interactive map API in Compose.

We don't yet support Wasm because one of our dependencies, Spatial-K, doesn't support it.

Feature Android iOS Desktop (JVM) Web (JS) Web (Wasm)
Renderer MapLibre Native MapLibre Native MapLibre JS in KCEF MapLibre JS ❌
Load Compose resource URIs ✅ ✅ ✅ ✅ ❌
Configure ornaments (compass, logo, attribution) ✅ ✅ ✅ ✅ ❌
Configure gestures (pan, zoom, rotate, pitch) ✅ ✅ ✅ ✅ ❌
Respond to a map click or long/right click ✅ ✅ ❌ ✅ ❌
Query visible map features ✅ ✅ ❌ ✅ ❌
Get, set, and animate the camera position ✅ ✅ ❌ ✅ ❌
Convert between screen and geographic coordinates ✅ ✅ ❌ ✅ ❌
Get the currently visible region and bounding box ✅ ✅ ❌ ✅ ❌
Insert, remove, and replace layers ✅ ✅ ❌ ❌ ❌
Configure layers with expressions ✅ ✅ ❌ ❌ ❌
Add data sources by URI or GeoJSON ✅ ✅ ❌ ❌ ❌
Add images to the style ✅ ✅ ❌ ❌ ❌
Add Material 3 controls ✅ ✅ ❌ ❌ ❌
Add Compose UI annotations ❌ ❌ ❌ ❌ ❌
Snapshot the map as an image ❌ ❌ ❌ ❌ ❌
Configure the offline cache ❌ ❌ ❌ ❌ ❌
Configure layer transitions ❌ ❌ ❌ ❌ ❌