v11.17.0
·
60 commits
to main
since this release
Features ✨ and improvements 🏁
- Promote Geofencing APIs to stable
- Enhanced Background Monitoring for geofencing:
- Maps SDK now utilizes the region monitor to support geofencing in the background. This improvement allows for more reliable tracking without needing the app to be actively open.
- Enhanced Background Monitoring for geofencing:
- Introduce
MapInitOptions.mapStyleproperty. Use it to initialize map with a custom style.
// Before
let options = MapInitOptions(styleURI: .standardSatellite)
let mapView = MapView(frame: view.bounds, mapInitOptions: options)
mapView.mapboxMap.setStyleImportConfigProperties(for: "basemap", configs: ["lightPreset": "dusk"])
// After:
let options = MapInitOptions(mapStyle: .standardSatellite(lightPreset: .dusk))
let mapView = MapView(frame: view.bounds, mapInitOptions: options)- Add
StyleReloadPolicyto control style reload behavior. UsereloadPolicy: .alwaysparameter inloadStyle()methods orMapStyleinitializers to always reload the style even when the URI or JSON matches the currently loaded style. Defaults to.onlyIfChangedfor optimal performance. - Introduce
ScaleBarViewOptions.unitsproperty supporting metric, imperial, and nautical units, replacing the booleanuseMetricUnitsproperty. - Add
fuelingStationModePointOfInterestLabelsconfiguration option to Mapbox Standard and Standard Satellite styles. Control the visibility of fuel station and electric charging station POI labels with options:default(shows both),fuel(fuel stations only),electric(charging stations only), ornone(hides both). - Add experimental
scaleFactorparameter toMapOptionsandMapSnapshotOptionsfor scaling icons and texts. Default value is1.0. - Add experimental
MapboxMap.setFeatureStateExpression(),removeFeatureStateExpression(), andresetFeatureStateExpressions()APIs to efficiently update feature state for multiple features at once using expressions. - Introduce experimental support for Appearances. The Appearances layer property defines sets of appearance objects used to quickly change the visual styling of a layer based on a condition using
feature-state. SeeAppearancesExamplefor further details. - Add experimental async variants of
MapboxMap.setLayerProperty(),setLayerPropertiesandupdateLayer(). line-emissive-strengthproperty is now data-driven, allowing different road types to be rendered in a single layer for improved performance- Promote
ModelLayerto stable. - Add
SymbolLayer.occlusionOpacityMode,SymbolLayer.iconColorBrightnessMax,SymbolLayer.iconColorBrightnessMin,SymbolLayer.iconColorContrastproperties. - Add
FillExtrusionLayer.castShadowsproperty. - Add
GeoJSONSource.minZoomproperty. - Add
RasterArraySource.volatileexperimental property. - Enable use of MapboxCommon's location manager in MapView.
- Support custom offline TTL header
Bug fixes 🐞
- Fix an issue where the location indicator could show incorrect direction in landscape orientation.
- Fix custom layer rendering crash
- Fix feature state clean up when feature state expressions are used
- Fix crash in config-dependent interpolate expression on style switching
- Fix for model manager deleting renderer resources on custom thread
- Fix config expression evaluation to properly check dependencies in nested value expressions
- Reset style lights when switching to a new style
- Fix crash in
OrnamentsManagerwhen setting attribution color. - Fix terrain crash on style switches.
- Fix line patterns not elevating properly on HD roads.
- Fix uint underflow in work limiting scheduler.
- Fix rendering artefacts when persistent buffer mapping is enabled
- Fix view-aligned symbols with road elevation being cutout
Optimizations and enhancements 🚀
- Optimized shadow rendering by limiting extra tile requests to zoom levels 16 and above, improving performance at zoom 15
- Optimized fill-extrusion rendering at zoom 17-22 by preventing bucket overscaling, significantly reducing tile cache evictions and CPU overhead
- Cleanup GeometryCollection usage in favor of FlatGeometries
- Implement zoom expression evaluation for
line-cutout-width. - Procedural building optimisations
- Fix GeoJSON tiled model disappearance in fast zoom situations.
- Fix user data handling in GeoJSON source with shared cache
- Optimize memory usage in GridIndex and related code.
- Memory improvements for vertex buffers.
- Avoid extra allocations in Formatted objects.
- Logging improvements to reduce duplication.
Dependencies
- Update MapboxCommon to
24.17.0. - Update MapboxCoreMaps to
11.17.0.
Dependency requirements:
- Compatible version of Xcode:
16.2