MapLibre Flutter
This package is a modern rewrite of maplibre_gl. It provides Flutter bindings for the MapLibre SDKs through native interoperability (FFI/JNI) with the goal to deliver a consistent, cross-platform experience with excellent performance.
- For web, it uses maplibre-gl-js, a fork of mapbox-gl-js.
- Every other platform uses
maplibre-native through its
C API and
the maplibre_native_ffi
binding, rendering into a Flutter
Texture. No platform views are used.
| Platform | Implementation | Rendering backend |
|---|---|---|
| Web | maplibre_web |
WebGL (MapLibre GL JS) |
| Android | maplibre_native |
OpenGL ES 3.0 (default) or Vulkan |
| iOS | maplibre_native |
Metal |
| macOS | maplibre_native |
Metal |
| Windows | maplibre_native |
Vulkan, shared with Flutter via D3D11 |
| Linux | maplibre_native |
Vulkan, shared with Flutter via OpenGL |
MapLibre is a permissive, open-source implementation of the Mapbox Vector Tile (MVT) standard. By leveraging native SDKs, this package enables high-performance rendering while supporting advanced mapping features.
âĪïļ Development & Contributing
All kinds of contributions are welcome. Thanks a lot if you consider to contribute in any way! There are different ways how you can help the development:
- ð Give the project on GitHub a star and like it on pub.dev. This helps the package to grow!
- ðŠī Use the package in your project and share feedback.
- ð Open bug reports in case you find any.
- ðĄ If you need a specific feature, open a feature request. or post your idea as discussion.
- ð Enhance the package documentation.
- ð Sponsor this project: GitHub-Sponsors, PayPal.