Interactive, fully styleable vector maps on Android, iOS and Web, powered by open source MapLibre.
Vendor-neutral: host your own tiles or mix providers, no account or API key required to get started.
✨ Try it before you install: run the package live in your browser and read the full docs, no setup and no API keys.
| 3D buildings | Clustering | Globe, on web |
|---|---|---|
![]() |
![]() |
![]() |
| Data-driven styling | Heatmaps | Annotations |
|---|---|---|
![]() |
![]() |
![]() |
All of these are live in the demo, and every guide embeds an interactive map you can pan and click.
flutter pub add maplibre_glimport 'package:maplibre_gl/maplibre_gl.dart';
// Anywhere with bounded constraints, a Scaffold body for example:
MapLibreMap(
initialCameraPosition: const CameraPosition(target: LatLng(0, 0), zoom: 2),
styleString: 'https://demotiles.maplibre.org/style.json',
onStyleLoadedCallback: () {
// Add sources, layers and images here.
},
);Requires Flutter 3.29+ · Dart 3.7+ · Android 5.0 (API 21)+ · iOS 13+ · a browser with WebGL2 (Safari 15+).
Then head to the getting started guide for platform setup (location permissions on iOS/Android; web needs no index.html changes) and to learn how to add markers, layers, offline tiles and more.
Upgrading from an earlier release? See the migration guide.
Engines: maplibre-native (Android/iOS), maplibre-gl-js (Web). Only a subset of native SDK APIs is exposed, PRs to extend coverage are welcome.
| Feature | Android | iOS | Web |
|---|---|---|---|
| Style, Camera, Gesture | ✅ | ✅ | ✅ |
| User Location | ✅ | ✅ | ✅ |
| Annotations | ✅ | ✅ | ✅ |
| All layer types (Symbol to Hillshade) | ✅ | ✅ | ✅ |
| GeoJSON, vector, raster & PMTiles sources | ✅ | ✅ | ✅ |
| Offline regions | ✅ | ✅ | ❌ |
| Feature state | ✅ | ❌ | ✅ |
See the full feature matrix for details.
Not supported: desktop targets (Windows, macOS, Linux), and Flutter widgets inside the map. The map is a
platform view rendered by the native engines, so your widgets go over it in a Stack, not between its layers.
Example app · API reference · Changelog · Discussions · Issues · Slack (#maplibre-flutter)
dart pub global activate melos
melos bootstrapThis is a melos workspace (maplibre_gl, maplibre_gl_web, maplibre_gl_platform_interface and the example app). Layer/source helpers are generated, don't edit them directly; run melos run generate && melos run format-all. See CONTRIBUTING.md before opening a PR, and the architecture docs for an overview.
This project is a fork of flutter-mapbox-gl. ❤️
A huge thanks to everyone who has contributed to this project!
Made with contrib.rocks.
See LICENSE.





