maplibre 0.3.0
maplibre: ^0.3.0 copied to clipboard
Permissive and performant mapping library that supports Mapbox Vector Tiles (MVT) powered by MapLibre SDKs.
0.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.flutter-io.cn WASM compatibility detection
Full Changelog: v0.2.2...v0.3.0
0.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.
Full Changelog: v0.2.1...v0.2.2
0.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.
Full Changelog: v0.2.0...v0.2.1
0.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.flutter-io.cn 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
Full Changelog: v0.1.2...v0.2.0
0.1.2 #
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.
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.
Full Changelog: v0.1.1...v0.1.2
0.1.1 #
New Features #
- Add
controller.queryLayers()to check what layers have been clicked. - Add scalebar, zoom buttons, compass and attribution widgets as a unified user interface.
- Improve hash distribution
- Add
MapOptionsparameters to toggle platform specific UIs.
Bug Fixes #
- Fix
controller.getVisibleRegion()throws exception on Android.
Full Changelog: v0.1.0...v0.1.1
0.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
Full Changelog: v0.0.2...v0.1.0
0.0.2 #
New 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.
Full Changelog: v0.0.1+1...v0.0.2
0.0.1+1 #
- Fix urls to website and embedded screenshots
- Remove unused
plugin_platform_interfacedependency
Full Changelog: v0.0.1...v0.0.1+1
0.0.1 #
- Initial release
- Implement map for android and web
- Add docs
