NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2574 most downloaded on pub.dev
Permissive and performant mapping library that supports Mapbox Vector Tiles (MVT) powered by MapLibre SDKs.
Last release 1 months ago
25 Aug 2026
Release timing varies
gaps range from 2 weeks to 5 months
Nearly every release is documented
notes for 19 of 19 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
19 releases · first in 2024
One column per month.
Thanks for everyone who contributed in this release!
Thanks for everyone who contributed in this release!
FrameLayout and its native map state per map create/disposeStyleController now releases its native style reference whenMapLibreMap is disposed, instead of staying technicallyStyleController and several map query methodsupdateGeoJsonSource, removeLayer/removeSource/removeImage,getLayerIds, getAttributionsSync, featuresAtPoint/featuresInRect)Contributors: @josxha, @emanuelesenis, @BartoszStasiurka, @D3CK3R, @Mazen-Embaby, @teamacco, @lukeboyden
This release contains a couple of bug fixes and improvements. Thanks to @BartoszStasiurka for his contributions in this release!
This release contains a couple of bug fixes and improvements.
Thanks to @BartoszStasiurka for his contributions in this release!
maxZoom to 22 for RasterSource, RasterDemSource and VectorSource.DownloadProgressdeleteRegion() to OfflineManageronStyleLoaded() unreliable if style not loaded immediatelyfeaturesAtPoint causes ClassNotFoundException in release buildsjni to v1.0.0, jnigen to 0.16.0Full Changelog: v0.3.4+1...v0.3.5
Contributors: @BartoszStasiurka, @josxha
This feature release introduces a complete migration of the iOS platform to FFI and experimental support for Windows and macOS has been added using wi
This feature release introduces a complete migration of the iOS platform to FFI and experimental support for Windows and macOS has been added using with web view.
The package has also been restructured into a federated plugin with separate packages for each platform.
padding parameter to moveCamera() and animateCamera().padding parameter of fitBounds() doesn't account for device pixel ratio.setState() if widget is not mounted.listOfflineRegions() throws exception if region packs are not available yet.addImage()Full Changelog: v0.3.3+2...v0.3.4
Contributors: @josxha
Web: fix addSource() with raster and raster-dem source throws exception.
addSource() with raster and raster-dem source throws exception.addImage() results in image with wrong pixel ratio.animateCamera() causes the zoom level to jumps to the target zoom level.onStyleLoaded() callback is not called when style loads immediately.Full Changelog: v0.3.4...v0.3.4+1
Contributors: @josxha
This release focuses on stability improvements along with a few small enhancements. Notably, it is now possible to render a Flutter widget or canvas d
This release focuses on stability improvements along with a few small enhancements. Notably, it is now possible to render a Flutter widget or canvas directly into an image and use it as a map marker without any delay. Many thanks to @markszente and @BartoszStasiurka for their contributions to this release.
I would also like to extend my sincere gratitude to Thilko M., @oboukili, @ton-An, @YumNumm, and @smallTrogdor for helping fund the development of this package throughout 2025. Your support is truly appreciated!
padding to fitBounds() on iOS.Widget or Canvas into an image and use it as marker on the map.sourceLayerId to style layers for vector sources.filter expressions to style layers.MapEventCameraIdle, MapEventStartMoveCamera events on iOS.queryLayers() throws exception on iOS when receiving numeric layer IDs.onCameraMoved() callback returning altitude instead of zoom level on iOS.Full Changelog: v0.3.2...v0.3.3
Contributors: @markszente, @BartoszStasiurka, @josxha
Fix addLayer() throws double release error on Android
addLayer() throws double release error on Androidfilter cannot be parsed on Androidmaplibre_ios to fix pub.dev scoreFull Changelog: v0.3.3...v0.3.3+1
Contributors: @josxha
Android: fix can't parse numeric array in layer properties
metadata parameter to OfflineRegionFull Changelog: v0.3.3+1...v0.3.3+2
Contributors: @josxha
Maintenance release that optimizes the package on pub.dev and fixes a bug in release builds on Android.
Maintenance release that optimizes the package on pub.dev and fixes a bug in release builds on Android.
pub.dev by restructuring the repository.jni / jnigen to ^0.15.1.Full Changelog: v0.3.1...v0.3.2
Contributors: @josxha
This release brings a couple of new features and bug fixes. The android platform view creation has been migrated to Dart. Android is now completely fr
This release brings a couple of new features and bug fixes.
The android platform view creation has been migrated to Dart. Android is now completely free from method channels.
minZoom, maxZoom to layers.aboveLayerId and atIndex to addLayer().addImages() to StyleController to add multiple images at once.addImageFromAssets() to load an image from Flutter assets.addImageFromIconData to add an image from Flutter icons.allowInteraction parameter in WidgetLayer not working on web.maxBounds parameterlinePattern int array causing crash on iOS.Contributors: @kekland, @josxha
Full Changelog: v0.3.0...v0.3.1
This release introduces breaking changes. Head over to the migration guide to learn more on how to update your implementation.
In this release, I'm blazed to finally announce support for iOS. Similar to our other platforms, iOS uses FFI to natively interop between Dart and Swift/ObjC. Checkout the iOS documentation to get started.
A big thanks to @mhernz, @gabbopalma and @jt274 that helped with their awesome contributions in this release!
This release introduces breaking changes. Head over to the migration guide to learn more on how to update your implementation.
geotypes to geobase.screenPoint parameter to MapEventUserInput events to show the screen coordinates in logical pixels where the user interacted with the map.rotationDuration in MapCompass to nativeRotationDuration.MapController functions are now called synchronously, their *Sync() overloads have been removed.FeatureCollection. This allows users to add properties to their layers.setStyle(), to know when the map style has loaded, listen to onStyleLoaded().androidTranslucentTextureSurface and androidForegroundLoadColor to use a translucent map.MapScalebar.units to support imperial units in the scalebar.featuresAtPoint() and featuresInRect() to MapController.pigeon 26.0.0BearingRenderModedart:io import to fix pub.dev WASM compatibility detectionContributors: @mhernz, @jt274, @gabbopalma, @josxha
Full Changelog: v0.2.2...v0.3.0
Maintenance release and some new functionality. Thanks for your contribution in this release @jt274 !
Maintenance release and some new functionality.
Thanks for your contribution in this release @jt274!
requestLocationPermissions() and addLayer() to use JNIjni and jnigen to v0.14pigeon to v25LngLatBounds.fromPoints() constructor....and numerous other dependencies updated in this release.
Contributors: @jt274, @josxha
Full Changelog: v0.2.1...v0.2.2
This release builds upon the long anticipated merged threads in Flutter 3.29.0 which removes the need of switching threads. Furthermore, the release c
This release builds upon the long anticipated merged threads in Flutter 3.29.0 which removes the need of switching threads. Furthermore, the release contains a couple of features and new fixes.
Thanks for your contributions for this release, @felix-larsen and @pamtbaau!
removePinchOnPressed and webRotationSpeed as parameters to the MapCompass widget.SourceAttribution widget to use multiple lines for its attributions.SourceAttribution widget when hovered with a cursor.allowInteraction to the WidgetLayer that allows widgets to detect gestures on these widgets.moveCamera(), animateCamera() and fitCamera() on Android.moveCamera(), animateCamera() and fitCamera() does not ignore null parameters.Full Changelog: v0.2.0...v0.2.1
This release is a collection of user affecting changes along a couple of new features and bug fixes. Head over to the migration guide to learn more on
This release is a collection of user affecting changes along a couple of new features and bug fixes. Head over to the migration guide to learn more on how to update your implementation.
A big thanks to @gabbopalma for his contributions in this release.
Layer postfix of the more low level style classes to StyleLayer.ZoomButtons to ControlButtons.StyleController that can be accessed via a nullable mapController.style field.StyleController in the onStyleLoaded() callback and in the MapEventStyleLoaded event.ImageSource now requires a static typed LngLatQuad object.style.setProjection() to switch to globe projection programmatically.ControlButtons.WidgetStateNative for better code reuse in the upcoming iOS release.This release adds the last missing features for Android and Web, that are were planned for now. The package will continue its ongoing efforts for stab
This release adds the last missing features for Android and Web, that are were planned for now. The package will continue its ongoing efforts for stability before iOS gets added as a supported platform.
OfflineManager for offline maps, cache management and bulk downloading.PermissionsManager to check and request location permissions.WidgetLayer to support widgets as Markers on the map.11.6.+.toScreenLocationSync(), toLngLatSync(), toScreenLocationsSync(), toLngLatsSync(), getMetersPerPixelAtLatitudeSync() and getVisibleRegionSync().MapOptions.of(context) and MapOptions.maybeOf(context).padding and alignment parameters to the MapScalebar widget.flutter_markdown package./platform directory.Full Changelog: v0.1.1...v0.1.2
Add controller.queryLayers() to check what layers have been clicked.
controller.queryLayers() to check what layers have been clicked.MapOptions parameters to toggle platform specific UIs.controller.getVisibleRegion() throws exception on Android.Full Changelog: v0.1.0...v0.1.1
Use a "Web" prefix for all web-only controls, for example WebGeolocateControl.
WebGeolocateControl.MapOptions.controls to MapOptions.webControls.jumpTo() to moveCamera() and flyTo() to animateCamera().init prefix to not modifiable MapOptions parameters.animateCamera() in this version.Read the Upgrade Guide for instructions on how to upgrade.
AnnotationLayers as easy to use annotations.Full Changelog: v0.0.2...v0.1.0
Deprecate tilt parameters in favor of pitch.
minZoom, maxZoom, minPitch, maxPitch and maxBounds parameter.flyTo().flyTo() returns after the animation completes or throws an exception if it has been cancelled.tilt parameters in favor of pitch.onClick, onDoubleClick, onSecondaryClick and onLongClick in favor of the event system.jumpTo() never returns on Android.Full Changelog: v0.0.1+1...v0.0.2
Fix urls to website and embedded screenshots
plugin_platform_interface dependencyFull Changelog: v0.0.1...v0.0.1+1
Implement map for android and web
Your coding agent can read these notes before it upgrades. Set up the MCP server →