Releases: josxha/flutter-maplibre
v0.3.1
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.
New Features
- Add
minZoom,maxZoomto layers. - Bump MapLibre Native on Android to 12.0.+.
- Migrate android platform view creation to Dart.
- Throw exception if layer or source id already exists when adding programmatically.
- Add
aboveLayerIdandatIndextoaddLayer(). - Add
addImages()toStyleControllerto add multiple images at once. - Add
addImageFromAssets()to load an image from Flutter assets. - Add
addImageFromIconDatato add an image from Flutter icons.
Bug Fixes
- Fix
allowInteractionparameter inWidgetLayernot working on web. - Fix pub.dev score.
- Fix
maxBoundsparameter - Fix
linePatternint array causing crash on iOS.
Contributors: @kekland, @josxha
Full Changelog: v0.3.0...v0.3.1
v0.3.0
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.
New Features
- Breaking Require Flutter 3.35
- Breaking Migrate from
geotypesto geobase. - Breaking Return logical pixels in events on all platforms.
- Breaking Add
screenPointparameter toMapEventUserInputevents to show the screen coordinates in logical pixels where the user interacted with the map. - Breaking Rename
rotationDurationinMapCompasstonativeRotationDuration. - Breaking Multiple
MapControllerfunctions are now called synchronously, their*Sync()overloads have been removed. - Breaking All declarative layers now require a
FeatureCollection. This allows users to add properties to their layers. - Add iOS as supported platform with MapLibre Native iOS 6.19.
- Update MapLibre Native Android to 11.13
- Load map styles from Flutter assets, a JSON string or via URI.
- Add
setStyle(), to know when the map style has loaded, listen toonStyleLoaded(). - Add support for PMTiles on the web.
- Add
androidTranslucentTextureSurfaceandandroidForegroundLoadColorto use a translucent map. - Add
MapScalebar.unitsto support imperial units in the scalebar. - Add
featuresAtPoint()andfeaturesInRect()toMapController. - Update to
pigeon26.0.0
Bug Fixes
- Fix missing export of
BearingRenderMode - Remove
dart:ioimport to fix pub.dev WASM compatibility detection
Contributors: @mhernz, @jt274, @gabbopalma, @josxha
Full Changelog: v0.2.2...v0.3.0
v0.2.2
Maintenance release and some new functionality.
Thanks for your contribution in this release @jt274!
New Features
- Migrate
requestLocationPermissions()andaddLayer()to use JNI - Update
jniandjnigento v0.14 - Update
pigeonto v25 - Migrate gradle DSL to Kotlin
- Add
LngLatBounds.fromPoints()constructor.
...and numerous other dependencies updated in this release.
Contributors: @jt274, @josxha
Full Changelog: v0.2.1...v0.2.2
v0.2.1
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!
New Features
- Upgrade MapLibre Native on Android to 11.8.0 which introduces support for PMTiles.
- Add
removePinchOnPressedandwebRotationSpeedas parameters to theMapCompasswidget. - Allow the
SourceAttributionwidget to use multiple lines for its attributions. - Underline an attribution link for a
SourceAttributionwidget when hovered with a cursor. - Add the parameter
allowInteractionto theWidgetLayerthat allows widgets to detect gestures on these widgets. - Reintroduce awaitable
moveCamera(),animateCamera()andfitCamera()on Android. - Use synchronous JNI calls on Android to prevent thread hopping.
Bug Fixes
- Fix exceptions when the map widget rebuilds a lot in a short amount of time.
- Fix
moveCamera(),animateCamera()andfitCamera()does not ignore null parameters. - Fix app freeze on Android using Flutter 3.29.0 caused by the merged threads.
- Fix exception when adding a RasterSource programatically.
Misc
- Update examples and documentation.
- Set minimum Flutter version to 3.29.0 and minimum Dart version to 3.7.0.
- Use the new code formatting.
- Upgrade pigeon to 24.
Contributors: @felix-larsen, @pamtbaau, @josxha
Full Changelog: v0.2.0...v0.2.1
v0.2.0
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.
Breaking Changes
- Rename the
Layerpostfix of the more low level style classes toStyleLayer. - Remove web-only map controls (ScaleControl, GeolocateControl, AttributionControl, FullscreenControl, LogoControl, NavigationControl, TerrainControl).
- Remove MapLibre Native specific User Interface options (logo, attribution, compass).
- Rename
ZoomButtonstoControlButtons. - Move style related controller calls to the
StyleControllerthat can be accessed via a nullablemapController.stylefield. - Return the
StyleControllerin theonStyleLoaded()callback and in theMapEventStyleLoadedevent. - An
ImageSourcenow requires a static typedLngLatQuadobject. - Set the minimum required Flutter version to 3.27.
New Features
- Bump MapLibre Native on Android to 11.7.+.
- Bump MapLibre GL JS on Web to version 5.
- Add
style.setProjection()to switch to globe projection programmatically. - Add a user location button to the
ControlButtons. - Bump ktlint to 0.4.19 and gradle to 8.6.1.
- Bump jni and jnigen to 0.13.0 and migrate bindings.
- Widen the gradle dependency constraints to allow patch updates.
- Add logo as pub.dev screenshot.
- Structure the API docs in topics.
- Add an internal
WidgetStateNativefor better code reuse in the upcoming iOS release.
Bug Fixes
- Fix can't rotate with two fingers on web.
- Fix text overflow in the scale bar widget.
- Fix deprecations introduced in Flutter 3.27.
Misc
- Enhance documentation.
- Build example app with java 21
Contributors: @gabbopalma, @josxha
Full Changelog: v0.1.2...v0.2.0
v0.1.2
This release adds the last missing features for Android and Web, that were planned for now. The package will continue its ongoing efforts for stability before work to add iOS as a supported platform starts.
New Features
- Add
OfflineManagerfor offline maps, cache management and bulk downloading. - Add
PermissionsManagerto check and request location permissions. - Add
WidgetLayerto support widgets as Markers on the map. - Add alternative Flutter platform view options for Texture Layer Hybrid Composition, Hybrid Composition, Virtual Display.
- Bump MapLibre Native on Android to version
11.6.+. - Add web-only controller functions
toScreenLocationSync(),toLngLatSync(),toScreenLocationsSync(),toLngLatsSync(),getMetersPerPixelAtLatitudeSync()andgetVisibleRegionSync(). - Add
MapOptions.of(context)andMapOptions.maybeOf(context). - Add
paddingandalignmentparameters to theMapScalebarwidget.
Bug Fixes
- Fix WebAssembly builds.
- Remove unused
flutter_markdownpackage.
Misc
- Add unit tests, add Android integration tests.
- Use codecov to monitor test coverage.
- Improve file structure by using a
/platformdirectory.
Contributors: @josxha
Full Changelog: v0.1.1...v0.1.2
v0.1.1
New Features
- Add
controller.queryLayers()to check what layers have been clicked. - Add scalebar, zoom buttons, compass and attribution widgets as an unified user interface.
- Improve hash distribution
- Add
MapOptionsparameters to toggle platform specific UIs.
Bug Fixes
- Fix
controller.getVisibleRegion()throws exception on Android.
Contributors: @josxha
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Breaking Changes
- Use a "Web" prefix for all web-only controls, for example
WebGeolocateControl. - Rename web-only
MapOptions.controlstoMapOptions.webControls. - Rename
jumpTo()tomoveCamera()andflyTo()toanimateCamera(). - Add
initprefix to not modifiableMapOptionsparameters. - Remove click callbacks in favor of the event system.
- Bump minimum Flutter version to 3.24.0 (Minimum Dart version of 3.5.0).
- Can't await the end of
animateCamera()in this version.
Read the Upgrade Guide for instructions on how to upgrade.
New Features
- Bump MapLibre Android SDK to 11.5.1.
- Add high level
AnnotationLayers as easy to use annotations. - Use jnigen for direct interop with Java.
- Add user location to the map.
- Check Style for Kotlin
Contributors: @josxha
Full Changelog: v0.0.2...v0.1.0
v0.0.2
Features
- Add event system to the map.
- Bump MapLibre Native on Android to version 11.5.0.
- Bump other gradle dependencies.
- Add and remove sources to the active map style programmatically.
- Add and remove layers to the active map style programmatically.
- Add
minZoom,maxZoom,minPitch,maxPitchandmaxBoundsparameter. - Add duration parameters to
flyTo(). - Add option to disable some or all input gestures.
flyTo()returns after the animation completes or throws an exception if it
has been cancelled.- Deprecate
tiltparameters in favor ofpitch. - Deprecate
onClick,onDoubleClick,onSecondaryClickandonLongClickin
favor of the event system.
Bug fixes
- Fix
jumpTo()never returns on Android.
Contributors: @gabbopalma, @josxha
Full Changelog: v0.0.1+1...v0.0.2