Releases: mapbox/mapbox-maps-ios
Releases · mapbox/mapbox-maps-ios
v11.12.2
v11.13.0-beta.1
Changes
Breaking changes ⚠️
- The experimental style
MapStyle.standardExperimental
is removed. UseMapStyle.standard
instead. PointAnnotation.iconImageCrossFade
has been deprecated and setting value to it will not have any impact. UsePointAnnotationManager.iconImageCrossFadeTransition
instead.
Features ✨ and improvements 🏁
- The Interactions and Featuresets API is promoted from experimental. The new API allows you to add interaction handlers to layers, Standard Style featuresets (POI, Buildings and Place Labels), and the map itself in the consistent way. You can control the propagation of events, tappable area, and the order of event handling.
- Methods
GestureManager.onMapTap
,GestureManager.onMapLongPress
,GestureManager.onLayerTap
,GestureManager.onLayerLongPress
and their SwiftUI counterparts are deprecated. UseTapInteraction
andLongPressInteraction
instead.
- Methods
// Before (SwiftUI)
Map()
.onMapTapGesture { context in
// Handle tap on map
}
.onLayerLongPressGesture("a-layer-id") { feature, context in
// Handle press on a layer
return true
}
// After (SwiftUI)
Map {
TapInteraction { feature in
// Handle tap on map
return true
}
LongPressInteraction(.layer("a-layer-id")) { feature, context in
// Handle press on a layer
return true
}
// Bonus: If you use Standard style, new API allows to handle tap on POI, Buildings and Place Labels
TapInteraction(.standardPoi) { poi, feature in
print("Tap on \(poi.name)")
return true
}
}
// Before (UIKit)
mapView.gestures.onMapTap.observe { context in
// Handle Tap on Map
}.store(in: &cancelables)
mapView.gestures.onLayerLongPress("a-layer-id") { feature, context in
// Handle Long press
return true
}
// After (UIKit)
mapView.mapboxMap.addInteraction(TapInteraction { context in
// Handle tap on map
return true
})
mapView.mapboxMap.addInteraction(LongPressInteraction(.layer("a-layer-id")) { feature, context in
// Handle long press on a layer
return true
})
// Bonus: If you use Standard style, new API allows to handle tap on POI, Buildings and Place Labels
mapView.mapboxMap.addInteraction(TapInteraction(.standardPoi) { poi, feature in
print("Tap on poi \(poi.name)")
return true
})
- Add new
VectorSource.promoteId2
andGeoJSONSource.promoteId2
. DeprecateVectorSource.promoteId
andGeoJSONSource.promoteId
. The newer version support the expression variant ofpromoteId
, which can be used to dynamically nominate IDs to the features. - Expose new experimental properties:
CircleLayer.circleElevationReference
,FillLayer.fillConstructBridgeGuardRail
,FillLayer.fillBridgeGuardRailColor
,FillLayer.fillTunnelStructureColor
. - Expose new
showLandmarkIcons
property inMapStyle.standard
. - New example for elevated spiral line using the experimental API
LineLayer/linezOffset
.
Update MapboxCoreMaps to 11.13.0-beta.1
:
Features ✨ and improvements 🏁
- Update Dynamic View Annotations to avoid overlapping symbol layers
StyleManager.getStyleImage()
can now retrieve vector icons- New
at-interpolated
expression added and separated from existingat
expression. - Tile pack v2 format will now be used by default for endpoints that support it
- Add support for shadows on elevated symbols
- Add
screenShape
MapOption for better culling on non-rectangular displays - Support color-use-theme for rain and snow
- Elevated bridge rail guard style support for color, emissive strength and enable/disable rail guard
Bug fixes 🐞
- Fix elevated lines rendering regression. Original report here.
- Fix incorrect placement for symbols with symbol-z-elevate on Globe projection
- Elevated symbol heights now change as smooth as building heights
- Fix map flickering caused by the fill-extrusion pan tiles and missing stencil in 3D layers
- Fix unstable placement for elevated symbols
- Fix icon rasterization issue with luminance mask contexts
- Fix
clipPath
and mask rendering for vector icon rasterization - Fix symbol order when
symbol-z-elevate
istrue
- Fix issue that
promoteId
content is missing after vector source serialization - Fix semi-transparent landmark icons
- Return
null
for config expression if requested config option is missing - Fix dotted lines on tile borders
- Fix pattern not found error when using imports
- Fix line layer not rendering when using
line-pattern
inside an imported style - Fix flickering of elevated HD roads
- Fix ground effect gradient not working with multiple polygons
- Fix invisible line when interpolating
line-width
from 0 to 1 usingline-progress
- Fix temporary allocations in getDashPatternTexture
💫️ Optimizations and other updates
- Remove confusing error message when events are disabled and not sent
- Tiled model translation support for 3D models
- Flood light ground effect now shown on top of 3D objects
- Support mapbox:// tile URLs without version and tiles
- Reduce excessive allocations on the tile pyramid nodes re-creation
- Avoid re-allocations per frame on
tileclippingMasksID
s - Use LayerUID uint16_t instead of std::string for map keys
- Add simple bounds check to avoid crash during centroid computation
Update MapboxCommon to 24.13.0-beta.1
:
Features ✨ and improvements 🏁
- Support radius individually per point geofence geometry
Bug fixes 🐞
- Fix possible offline cache migration issues
- Fix iOS 18.4-18.5 network issues
- Fix possible crashes in HTTP requests processing in case of invalid UTF-8 headers
Dependency requirements:
- Compatible version of Xcode:
16.2
v11.12.1
Bug fixes 🐞
- Apply a workaround for 401 status code/timeout network issues on iOS devices (iOS 18.4 and 18.5 exclusively).
Dependencies
- Update MapboxCommon to
24.12.1
. - Update MapboxCoreMaps to
11.12.1
.
Dependency requirements:
- Compatible version of Xcode:
16.2.0
v11.12.0
Features ✨ and improvements 🏁
- Mapbox Geofencing is now available in public preview. Follow the documentation and code examples for iOS and Android to get started.
- Advanced performance reports now provide more GPU-oriented data. Check out:
- Experimental support for non-rectangular screen shapes with a new
MapboxMap/screenCullingShape
property.
Bug fixes 🐞
- Failing network requests on iOS Simulators running iOS 18.4 were mitigated by disabling TLS 1.3.
This is a known issue in the iOS SDK. The fix applies exclusively to iOS Simulators and only for iOS 18.4.x versions.
The upcoming iOS 18.5 will have TLS 1.3 support enabled by default, as it did before iOS 18.4. - StyleManager/image(withId:) now supports vector icons.
- Fix missing city or street names in the satellite mode.
- Fix map flickering caused by the fill-extrusion pan tiles and missing stencil in 3D layers
- Avoid re-allocations per frame on tileclippingMasksIDs
- Reduce excessive allocations on the tile pyramid nodes re-creation
- Optimize
symbol-sort-key
sorting algorithm - Fix semi-transparent landmark icons.
- Fix clipPath and mask rendering for vector icon rasterization.
- Fix dotted lines on tile borders.
- Fix pattern not found when using imports.
- Fix line layer not rendering if using line-pattern inside an imported style.
- Avoid dynamic view annotations overlapping given symbol layers.
💫️ Other
- Fix ground effect gradient not working with multiple polygons.
- Add simple bounds check to avoid crash during centroid computation.
- Fix invisible line when interpolating line-width from 0 to 1 using line-progress.
- Fix elevated structure normals.
- Speedup tile loading.
- Support color-use-theme for rain and snow.
- Elevated bridge rail guard style support for color, emissive strength and enable/disable rail guard.
- Remove material copy that was causing temporary allocations.
Dependencies
- Update MapboxCommon to
24.12.0
. - Update MapboxCoreMaps to
11.12.0
.
Dependency requirements:
- Compatible version of Xcode:
16.2.0
11.11.1
Important
This is the last version to support Xcode 15
Dependencies
- Updated MapboxCommon to
24.11.3
. - Updated MapboxCoreMaps to
11.11.3
.
Dependency Requirements
- Compatible Xcode version:
15.2.0
.
v11.12.0-rc.1
Features ✨ and improvements 🏁
- Exposed an experimental API to define a non-rectangular screen culling shape
MapboxMap.screenCullingShape
.
Bug fixes 🐞
- Fix map flickering caused by the fill-extrusion pan tiles and missing stencil in 3D layers
- Avoid re-allocations per frame on tileclippingMasksIDs
- Reduce excessive allocations on the tile pyramid nodes re-creation
- Optimize
symbol-sort-key
sorting algorithm
Dependencies
- Update MapboxCommon to
24.12.0-rc.1
. - Update MapboxCoreMaps to
11.12.0-rc.1
.
Dependency requirements:
- Compatible version of Xcode:
16.2.0
v11.12.0-beta.1
Features ✨ and Improvements 🏁
- Expose
graphicsPrograms
,graphicsProgramsCreationTimeMillis
andfboSwitchCount
forCumulativeRenderingStatistics
. - Avoid DVA overlapping given symbol layers.
- Vector icons can now also be retrieved via getStyleImage.
- Add new
at-interpolated
expression. - Enable tile pack v2 format by default.
Bug fixes 🐞
- Fix semi transparent landmark icons.
- Return null for config expression if requested config option is missing.
- Fix clipPath and mask rendering for vector icon rasterization.
- Fix dotted lines on tile borders.
- Fix pattern not found when using imports.
- Fix line layer not rendering if using line-pattern inside an imported style.
💫️ Other
- Fix ground effect gradient not working with multiple polygons.
- Add simple bounds check to avoid crash during centroid computation.
- Fix invisible line when interpolating line-width from 0 to 1 using line-progress.
- Fix elevated structure normals.
- Speedup tile loading.
- Support color-use-theme for rain and snow.
- Elevated bridge rail guard style support for color, emissive strength and enable/disable rail guard.
- Remove material copy that was causing temporary allocations.
Dependencies
- Updated MapboxCommon to
24.12.0-beta.1
. - Updated MapboxCoreMaps to
11.12.0-beta.1
.
Dependency Requirements
- Compatible Xcode version:
16.2.0
.
v11.5.4
Bug fixes 🐞
- Fix a rare crash in HTTP requests caused by
[NSString initWithBytes:length:encoding:] succeeds
when headers contain invalid utf-8 values.
Dependencies
- Update MapboxCommon to
24.5.1
.
Dependency requirements:
- Compatible version of Xcode:
15.2.0
v11.11.0
Features ✨ and Improvements 🏁
- ✨ Landmark icons
Landmark icons are stylized, uniquely designed POI icons that indicate the most popular and recognizable landmarks on the map. - Introduced an experimental API for setting
ColorTheme
on style imports. - Added experimental
use-theme
properties for all annotation types and the Puck3D layer. - Enabled panning and pinching gestures for trackpads.
- Reduced installation size by approximately 10 MB by redacting unnecessary debug symbols.
- Optimized battery usage by reducing background triggers when the app is not in focus.
- Lowered CPU load by implementing exponential backoff for failed connection attempts.
- Added support for vector icons in the location indicator layer.
- Increased the placement range for Dynamic View Annotations when the pitch level exceeds 45 degrees.
Bug Fixes 🐞
- Resolved Dynamic View Annotations placement issues at high zoom levels.
- Fixed an issue where line placement symbols would disappear at zoom levels between 5 and 6.
- Addressed missing vector images after a style change.
- Fixed background layer updates when a raster image was updated in place.
- Ensured the background layer updates correctly when changing the color theme.
- Fixed LUT (look-up table) application for in-place updated images.
- Resolved in-place updates for SDF (Signed Distance Field) images.
- Corrected mipmaps for images updated in place.
- Added support for positive mask coordinates for vector images.
- Fixed dark gradient shades in the night preset.
- Addressed rare cases of missing background colors.
- Improved Custom Raster Source behavior upon re-creation.
- Previously, when the Custom Raster Source was re-created within the same call chain, its rendering counterparts were not updated. This prevented
CustomRasterSourceTileRenderer
from being properly re-initialized.
- Previously, when the Custom Raster Source was re-created within the same call chain, its rendering counterparts were not updated. This prevented
Dependencies
- Updated MapboxCommon to
24.11.0
. - Updated MapboxCoreMaps to
11.11.0
:- Fixed semi-transparent landmark icons.
- Improved tile loading speed.
Dependency Requirements
- Compatible Xcode version:
15.2.0
.
v11.10.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.
Dependencies
- Update gl-native to v11.10.3, common to v24.10.1.
Dependency requirements:
- Compatible version of Xcode:
15.2.0
Previous Next