Releases: mapbox/mapbox-maps-flutter
Releases · mapbox/mapbox-maps-flutter
v2.6.2
Bug fixes 🐞
- Fix a bug that may cause style packs to be either inaccessible or incorrect when updating an older tile store database created with Maps SDK 11.9 or earlier versions. In systems that have already used Maps SDK 11.10.0 through 11.10.1, a re-download of style packs may be necessary.
- Fix a map start time regression by speed up tile loading.
Dependency Updates
v2.7.0-rc.1
New Features ✨
- Introduces a setCustomHttpHeader method to allow the plugin to modify HTTP headers dynamically. #886
- Update Maps SDK to 11.11.0-rc.1
- Expose experimental API for setting ColorTheme on style imports.
- Expose use-theme properties for all annotation types and Puck3D layer.
Bug fixes 🐞
- Fixed incorrect rgba to hsla conversion for white color
- Fix vector images rasterization
- Make katakana and CJK symbol rendered correctly in vertical writing mode
v2.7.0-beta.1
New Features ✨
- Introduce
onZoomListener
toMapWidget
to allowing listening to zoom events resulting from user gestures: pinching, double-tapping, or quick-zooming. The event returnsMapContentGestureContext
, which includestouchPosition
(the location of the gesture on the screen),point
(the geographical coordinates of the gesture), andgestureState
(the state of the gesture). Seegestures_example.dart
for implementation guidance.
_onZoom(MapContentGestureContext context) {
print("OnZoom coordinate: {${context.point.coordinates.lng}, ${context.point.coordinates.lat}}" +
" point: {x: ${context.touchPosition.x}, y: ${context.touchPosition.y}}" +
" state: ${context.gestureState}");
}
- Expose
SymbolLayer.iconSizeScaleRange
,SymbolLayer.iconSizeScaleRangeExpression
,SymbolLayer.textSizeScaleRange
,SymbolLayer.textSizeScaleRangeExpression
,LineLayer.lineCrossSlope
,LineLayer.lineElevationReference
,LineLayer.lineWidthUnit
,FillLayer.fillElevationReference
. - Expose
PointAnnotationManager.setIconSizeScaleRange()
,PointAnnotationManager.getIconSizeScaleRange()
,PointAnnotationManager.setTextSizeScaleRange()
,PointAnnotationManager.getTextSizeScaleRange()
,PolygonAnnotationManager.setFillElevationReference()
,PolygonAnnotationManager.getFillElevationReference()
,PolylineAnnotationManager.setLineCrossSlope()
,PolylineAnnotationManager.getLineCrossSlope()
,PolylineAnnotationManager.setLineElevationReference()
,PolylineAnnotationManager.getLineElevationReference()
,PolylineAnnotationManager.setLineWidthUnit()
,PolylineAnnotationManager.getLineWidthUnit()
as experimental.
Improvements 🏁
- Reduce installation size by ≈ 10 MB by redacting the rest of the debug symbols.
- Reduce the amount of background triggers to optimize battery usage when the app is not in the focus anymore.
Reduce CPU load by adding exponential backoff for failed connection attempts - Experimental
StandardBuildingState
has been removed. UseStandardBuildingsState
instead. - Vector icons supported in the location indicator layer
top-image
,bearing-image
, andshadow-image
properties onLocationIndicatorLayer
are now paint properties instead of layout properties.
Bug fixes 🐞
- Fix Dynamic View Annotations placement on high zoom levels
- Fix line placement symbol disappearing issue when in zoom level between 5 and 6
- Fixing missing vector images after style change
- Fix background layer not being updated on raster image was in-place update
- Fix background layer not being updated on color theme change
- Fixing LUT (look-up table) not being applied to in-place updated images.
- Fixing in-place updates for SDF (Signed Distance Field) images.
- Fix mipmaps for images updated inplace
- Support positive mask coordinates for vector images.
- Fix dark shades of gradient effect in the night preset
- Fix rarely missing background color
- Fix Custom Raster Source behavior on re-creation
- Previously, when the Custom Raster source was re-created within the same call chain, its rendering counterparts were not updated. This caused the CustomRasterSourceTileRenderer to remain not re-initialized.
Other changes 🎉
- Mark
ClipLayer.clipLayerScope
andClipLayer.clipLayerTypes
as stable - Mark
BackgroundLayer.backgroundPitchAlignment
as experimental
Dependency Updates
v2.6.1
Bug fixes 🐞
- Fix LUT not being applied to in-place updated images.
- Fix in-place updates for SDF images.
- Fix background layer not being updated if raster image was updated in-place or if color theme changed.
- Vector icons supported in location indicator layer.
- Important:
top-image
,bearing-image
, andshadow-image
properties on LocationIndicatorLayer are now paint properties instead of layout properties.
- Important:
- Fix mipmaps for images updated in place.
- Ensure background color is correctly set.
- Fixing missing vector images after style change
Dependency Updates
v2.6.0
Features ✨ and improvements 🏁
- Introduce the experimental Interactions API, a toolset that allows you to handle interactions on both layers and basemap features for styles. This API introduces a new concept called
Featureset
, which allows Evolving Basemap styles, such as Standard, to export an abstract set of features, such as POI, buildings, and place labels, regardless of which layers they are rendered on. AnInteraction
can then be targeted to these features, modifying their state when interacted with. For example, you can add aTapInteraction
to your map which targets thebuildings
Featureset
. When a user taps on a building, the building will be highlighted and its color will change to blue.
var tapInteraction = TapInteraction(StandardBuildings(),
(_, feature) {
mapboxMap.setFeatureStateForFeaturesetFeature(feature, StandardBuildingState(highlight: true));
log("Building group: ${feature.group}");
});
mapboxMap.addInteraction(tapInteraction);
Specific changes:
- Introduce the experimental
MapboxMap.addInteractions
method, which allows you to add interactions to the map. - Introduce
TapInteraction
andLongTapInteraction
, which allow you to add tap and longTap interactions to the map. - Introduce
FeaturesetDescriptor
-- and convenience descriptors forStandardBuildings
,StandardPOIs
, andStandardPlaceLabels
-- which allow you to describe the featureset you wantInteractions
to target. - Introduce low-level methods for creating and manipulating interactive features:
queryRenderedFeatures
,querySourceFeatures
,setFeatureState
,getFeatureState
,removeFeatureState
,resetFeatureState
- For more guidance with using these new features see
interactive_features_example.dart
. - Align tap propagation behavior on Android and iOS.
- Add support for Swift Package Manager.
Bug fixes 🐞
- [Android] Fix bug in .setStyleImportConfigProperties() where map values were not being set correctly.
- [Android] Fix throwing NPE when converting a map with null values to a Value.
- Align tap propagation behavior on Android and iOS.
Dependency Updates
2.5.2
2.6.0-rc.1
Important
The iOS minimum deployment target is now iOS 14.0.
Features ✨ and improvements 🏁
- Introduce the experimental Interactions API, a toolset that allows you to handle interactions on both layers and basemap features for styles. This API introduces a new concept called
Featureset
, which allows Evolving Basemap styles, such as Standard, to export an abstract set of features, such as POI, buildings, and place labels, regardless of which layers they are rendered on. AnInteraction
can then be targeted to these features, modifying their state when interacted with. For example, you can add aTapInteraction
to your map which targets thebuildings
Featureset
. When a user taps on a building, the building will be highlighted and its color will change to blue.
var tapInteraction = TapInteraction(StandardBuildings(),
(_, feature) {
mapboxMap.setFeatureStateForFeaturesetFeature(feature, StandardBuildingState(highlight: true));
log("Building group: ${feature.group}");
});
mapboxMap.addInteraction(tapInteraction);
Specific changes:
- Introduce the experimental
MapboxMap.addInteractions
method, which allows you to add interactions to the map. - Introduce
TapInteraction
andLongTapInteraction
, which allow you to add tap and longTap interactions to the map. - Introduce
FeaturesetDescriptor
-- and convenience descriptors forStandardBuildings
,StandardPOIs
, andStandardPlaceLabels
-- which allow you to describe the featureset you wantInteractions
to target. - Introduce low-level methods for creating and manipulating interactive features:
queryRenderedFeatures
,querySourceFeatures
,setFeatureState
,getFeatureState
,removeFeatureState
,resetFeatureState
- For more guidance with using these new features see
interactive_features_example.dart
. - Align tap propagation behavior on Android and iOS.
Dependency Updates
2.6.0-beta.1
2.5.1
2.5.0
Known issues 🛑
We do not recommend using this version when deploying on Android. We are actively working on a patch release (2.5.1
) to fix the following critical issue:
- When a map is currently visible and user press home button the
MapboxRenderThread
consumes CPU (potentially keeping one CPU busy).
Features ✨ and improvements 🏁
- Added viewport support to
MapWidget
. Control the camera’s initial position and behavior by specifying a ViewportState subclass in the viewport parameter. This allows for centering on specific locations, following the user’s position, or showing an overview of a geometry. If no viewport is provided, the map uses its default camera settings.MapWidget( viewport: CameraViewportState( center: Point(coordinates: Position(-117.918976, 33.812092)), zoom: 15.0, ), );
- Marked
ClipLayer
as stable. - Updated our generated code to align with iOS and Android platforms. Specifically, the changes:
- Updated experimental
symbolElevationReference
property onSymbolLayer
. - Introduced
backgroundPitchAlignment
property onBackgroundLayer
. - Introduced experimental
fillZOffset
property onFillLayer
. - Introduced experimental
fillExtrusionBaseAlignment
andfillExtrusionHeightAlignment
properties onFillExtrusionLayer
. - Marked get and set
ZOffset
methods onPolygonAnnotationManager
,PolylineAnnotationManager
, andPointAnnotationManager
as experimental. - Marked get and set
symbolElevationReference
methods onPointAnnotationManager
as experimental. - Marked get and set line trim methods on
PolylineAnnotationManager
as experimental. - Added a property
emphasisCircleGlowRange
toLocationIndicatorLayer
to control the glow effect of the emphasis circle – from the solid start to the fully transparent end. - Added experimental
ZOffset
properties toPolylineAnnotationMessenger
,PolygonAnnotationMessenger
, andPointAnnotationMessenger
. - Introduced
FillExtrusionBaseAlignment
andFillExtrusionHeightAlignment
, andBackgroundPitchAlignment
enums.
- Updated experimental