Flutter MapLibre GL
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.
πΌοΈ What it looks like
| 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.
π Quick start
flutter pub add maplibre_gl
import '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.
πΊοΈ Feature support
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.
π Links
Example app Β· API reference Β· Changelog Β· Discussions Β· Issues Β· Slack (#maplibre-flutter)
π€ Contributing
dart pub global activate melos
melos bootstrap
This 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. β€οΈ
π Contributors
A huge thanks to everyone who has contributed to this project!
Made with contrib.rocks.
π License
See LICENSE.
Libraries
- maplibre_gl
- This library contains the MapLibre GL plugin for Flutter.





