Releases: mapbox/mapbox-maps-ios
Releases · mapbox/mapbox-maps-ios
v11.0.0-beta.3
Changes
Maps SDK (11.0.0-beta.3)
Breaking changes ⚠️
MapboxMap.dragStart()
andMapboxMap.dragEnd()
are not in use anymore and were removed.- Remove
MapOptions/optimizeForTerrain
option. Whenever terrain is present layer order is automatically adjusted for better performance.
Features ✨ and improvements 🏁
- Improve map camera and gestures when terrain is used to fix camera bumpiness and map flickering.
- Expose a method to remove tile region with a completion:
TileStore.removeTileRegion(forId:completion:)
. - Bump core maps version to 11.0.0-beta.4 and common sdk to 24.0.0-beta.4.
Bug fixes 🐞
- Fix
modelCastShadows
andmodelReceiveShadows
options ofPuck3DConfiguration
being ignored.
Changes in 11.0.0-beta.2
Changes in 11.0.0-beta.1
MapboxCoreMaps (11.0.0-beta.4)
Features ✨ and improvements 🏁
- Use a fallback glyph URL if a style does not define one. This enables the addition of Symbol layers to an empty style or to the style that doesn't use Symbol layers.
- Use ETC2 compression for raster tiles to support transparency.
- Add runtime styling API.
Bug fixes 🐞
- Fix fallback rules for the style's transition property. The change fixes style transitions when style imports are modified for the Standard style.
- Improve camera behavior on terrain. This change fixes jumpy camera animations on platforms.
- Fix a crash on application exit when multiple maps were rendered in a single thread.
- Fix terrain rendering for the Terrarium-encoded tiles.
- Fixes an issue that causes view annotations to be placed on the sky when high pitch and mercator projection is used.
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v10.16.0
Bug fixes 🐞
- Fix race condition for Metal library initialization. The fix allows developers to create multiple MapSnapshotter instances without hitting race condition that raises an exception and terminates the application.
- Avoid excessive relayout of the symbol layer when no properties depend on the image changes. This fix eliminates the symbol layer flickering when styles are switched.
- Fix possible crash on mutex lock after library unload.
- Don't emit MapLoadingError if an offline tilepack has no tiles.
- Fix terrain rendering for the Terrarium-encoded tiles.
- Fix a crash on application exit when rendering multiple maps in a single thread.
- Fix an issue that causes view annotations to be placed on the sky when high pitch and mercator projection is used.
Dependencies
- Update MapboxCommon to
23.8.0
. - Update MapboxCoreMaps to
10.16.0
.
Dependency requirements:
- Compatible version of Xcode:
14.1.0
.
v11.0.0-beta.2
Changes
Maps SDK (11.0.0-beta.2)
Features ✨ and improvements 🏁
SwiftUI support 🥳 . We introduce preliminary support for iOS SwiftUI. Read more about it in the SwiftUI User Guide.
Bug fixes 🐞
- Introduce experimental
MapboxRecorder
, which allows recording of the map and replaying custom scenarios. - Expose
slot
property onLayer
protocol. - Add privacy policy attribution dialog action.
- Show SDK version in the attribution dialog title.
- Fixed an issue when Annotations could be shuffled when updated.
MapboxCoreMaps (11.0.0-beta.3)
Features ✨ and improvements 🏁
- Reduce segment overlap in flood lighting to improve rendering performance
- Enable offline support for the Standard style
- Reduce vertex buffer size in flood lighting and ground AO when rounded edges are enabled to improve performance
- Add wireframe rendering debug feature (note: only supported on Android at the moment)
Bug fixes 🐞
- Fix race condition for Metal library initialization. The fix allows developers to create multiple MapSnapshotter instances without hitting race condition that raises an exception and terminates the application.
- Fix Tileset descriptor resolving on network error. The issue prevented the downloading of style and tilepacks in case of a network error.
- Avoid excessive relayout of the symbol layer when no properties depend on the image changes. This fix eliminates the symbol layer flickering when styles are switched.
- Don't emit MapLoadingError if an offline tilepack for 3D landmarks has no tiles
- Fix a bug where the cameraForGeometry method returned incorrect values for the globe projection
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v10.16.0-rc.1
Changes
Bug fixes 🐞
- Don't emit MapLoadingError if an offline tilepack has no tiles
Dependencies
- Update MapboxCommon to
23.8.0-rc.2
. - Update MapboxCoreMaps to
10.16.0-rc.2
:
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v10.16.0-beta.1
Changes
Bug fixes 🐞
- Fix race condition for Metal library initialization. The fix allows developers to create multiple MapSnapshotter instances without hitting race condition that raises an exception and terminates the application.
- Avoid excessive relayout of the symbol layer when no properties depend on the image changes. This fix eliminates the symbol layer flickering when styles are switched.
- Fix possible crash on mutex lock after library unload.
Dependencies
- Update MapboxCommon to
23.8.0-beta.1
. - Update MapboxCoreMaps to
10.16.0-beta.1
:
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v11.0.0-beta.1
Changes
- Introduce
hsl
,hsla
color expression. - Introduce
random
expression. - Introduce
measureLight
expression lights configuration property. - Introduce
LineLayer/lineBorderColor
,LineLayer/lineBorderWidth
APIs. - Introduce
SymbolLayer/iconImageCrossFade
API. - Introduce experimental
BackgroundLayer/backgroundEmissiveStrength
,CircleLayer/circleEmissiveStrength
,FillLayer/fillEmissiveStrength
,LineLayer/lineEmissiveStrength
,SymbolLayer/iconEmissiveStrength
,SymbolLayer/textEmissiveStrength
,ModelLayer/modelEmissiveStrength
,ModelLayer/modelRoughness
,ModelLayer/modelHeightBasedEmissiveStrengthMultiplier
APIs. - Introduce experimental
FillExtrusionLayer/fillExtrusionAmbientOcclusionWallRadius
,FillExtrusionLayer/fillExtrusionAmbientOcclusionGroundRadius
,FillExtrusionLayer/fillExtrusionAmbientOcclusionGroundAttenuation
,FillExtrusionLayer/fillExtrusionFloodLightColor
,FillExtrusionLayer/fillExtrusionFloodLightIntensity
,FillExtrusionLayer/fillExtrusionFloodLightWallRadius
,FillExtrusionLayer/fillExtrusionFloodLightGroundRadius
,FillExtrusionLayer/fillExtrusionFloodLightGroundAttenuation
,FillExtrusionLayer/fillExtrusionVerticalScale
APIs. - Rename
Viewport
toViewportManager
. - Apply
ModelScaleMode.viewport
to Puck3D configuration and remove the custom expression for themodelScale
of the puck. This means if you are using a constant forPuck3DConfiguration/modelScale
in v10, you need to adjust this model-scale constant so the puck would be rendered correctly in v11, while this value depends on other configurations of your puck, we have found the new adjusted model-scale to fall between 10x-100x of the old value. - Add experimental
tileCover
method to theSnapshotter
that returns tile ids covering the map. - Add optional
maxZoom
andoffset
parameters toMapboxMap.camera(for coordinateBounds:)
.MapboxMap.camera(for coordinateBounds:)
,MapboxMap.camera(for coordinates:)
, andMapboxMap.camera(for geometry:)
no longer return a padding value. Location
is splitted intoLocation
andHeading
structs, the location and heading data are now animated individually.- Replace
loadStyleJSON(_:completion:)
/loadStyleJSON(_:completion:)
with overloadedloadStyle(_:completion:)
. - Mark
Expression.Operator.activeAnchor
as experimental. - Add transition options as a parameter to
loadStyle(...)
methods. Expression.Operator
is now a struct with static variables instead of enum.- Add
MapboxMap.coordinate(s)Info(for:)
for converting offscreen points into geographical coordinates. - Fixed an issue when
MapboxMap.point(for:)
could return false negative result. - Remove
source
,sourceLayer
,filter
properties from theLayer
protocol requirement. - Refactor style Light API: introduce
AmbientLight
,DirectionalLight
,FlatLight
and methods to set them. - Add expression support to
Layer.visibility
. - Expose new APIs for working with style importing and configuration: getStyleImports(), removeStyleImport(forImportId:), getStyleImportSchema(forImportId:), getStyleImportConfigProperties(forImportId:), setStyleImportConfigPropertiesForImportId(:configs:), getStyleImportConfigProperty(forImportId:config:), setStyleImportConfigPropertyForImportId(:config:value:)
- Expose
slot
property for allLayer
s to link layers from imported styles. - Convert Style properties enums into structs.
- Bump core maps version to 11.0.0-beta.2 and common sdk to 24.0.0-beta.2.
- Remove MetaKit reexport.
- Remove unnecessary check before updating a geo json source.
- Remove deprecated
LocationManager.updateHeadingForCurrentDeviceOrientation()
method. - Remove deprecated
MapEvents.EventKind
. - Make NSNumber extension internal.
- Remove experimental
MapboxMap.setRenderCache(_:)
method. - Remove deprecated
GestureOptions.pinchRotateEnabled
. - Remove deprecated
Location
initializer. - Remove deprecated transition properties from layers.
- Make
easeTo/flyTo
return non-optional cancelable token. - Add
rotation
case toGestureType
to be able to detect rotation separately from other gestures. - Enable zoom during a drag gesture.
- Fix bearing value is fluctuating between initial value and correct value during a rotation gesture.
- Allows animation during any ongoing gestures.
- Sync map size to the size of the metal view.
- Fix missing feature properties for
nil
/null
values. - Added experimental
tileCover
method toMapboxMap
that returns tile ids covering the map. - Expose
owner
property forCameraAnimator
protocol - Updated core styles to the latest versions.
- Merge
TilesetDescriptorOptions
andTilesetDescriptorOptionsForTilesets
. To enable tileset descriptor creation for a list of tilesets that are not part of the original style useTilesetDescriptorOptions
. - Use
DataRef
to pass snapshot and style image data by reference, improving performance - Bumped min iOS version to 12.0
- Expose a subset of ModelLayer APIs.
- Protocol
LocationProvider
now requires class semantic for implementation. - The Map events have been reworked:
- Now all Map events payloads are serialize-free, which brings more type safety and eliminates possible deserialization errors;
- The
MapboxMap
andSnapshotter
now exposeon
-prefixed properties that allows you to subscribe to map events viaobserve
andobserveNext
methods:mapboxMap.onCameraChanged.observe { [weak self] event in self?.camera = event.cameraState }.store(in: &cancelables) mapboxMap.onStyleLoaded.observeNext { [weak self] _ in self?.configureStyle() }.store(in: &cancelables)
- The
AnyCancelable
object returned fromobserve
andobserveNext
should be stored, otherwise the subscription will be immediately canceled; - The same
on
-prefixed properties can now be used asCombine.Publisher
:import Combine mapboxMap.onCameraChanged .debounce(for: .milliseconds(500), scheduler: DispatchQueue.main) .map(\.cameraState) .sink { [weak self] cameraState in self?.camera = cameraState }.store(in: &cancellables)
- Methods
MapboxMap.onEvery
,MapboxMap.onNext
,Snapshotter.onEvery
,Snapshotter.onNext
have been deprecated; - Methods
MapboxMap.observe
andSnapshotter.observe
have been removed.
- Deprecate
PointAnnotationManager.iconTextFit
andPointAnnotationManager.iconTextFitPadding
in favor ofPointAnnotation.iconTextFit
andPointAnnotation.iconTextFitPadding
. - Remove deprecated
PuckBearingSource
and related APIs. - Experimental API
MapboxMap/setMemoryBudget
was renamed toMapboxMaps/setTileCacheBudget
and promoted to stable. - Location consumer methods have been renamed to align with Swift API Design Guidelines. Use
addLocationConsumer(_:)
andremoveLocationConsumer(_:)
rather thanaddLocationConsumer(newConsumer:)
andremoveLocationConsumer(consumer:)
. SourceType
andLayerType
are now structs with static variables instead of enums- Remove
ResourceOptions
andResourceOptionsManager
. IntroduceMapboxOptions
andMapboxMapsOptions
to handle application-level access token and other generic options.- Mapbox's access token can now be set with
MapboxCommon.MapboxOptions
. By default, MapboxMaps SDK will try to read the access token from app bundle's property list orMapboxAccessToken
file when Maps service are initialized; if you wish to set access token programmatically, it is highly recommended to set it before initializing aMapView
.import MapboxMaps MapboxOptions.accessToken = accessToken
TileStore
no longer requiresTileStoreOptions.mapboxAccessToken
to be explicitly set.- Configurations for the external resources used by Maps API can now be set with
MapboxMapsOptions
:import MapboxMaps MapboxMapsOptions.dataPath = customDataPathURL MapboxMapsOptions.assetPath = customAssetPathURL MapboxMapsOptions.tileStoreUsageMode = .readOnly MapboxMapsOptions.tileStore = tileStore
- To clear the temporary map data, you can use
MapboxMap.clearData(completion:)
- Mapbox's access token can now be set with
- Expose new 3D Lights API:
AmbientLight
andDirectionalLight
. TypeConversionError
,SnapshotError
, andViewAnnotationManagerError
are now structs with static variables instead of enums- Extend
Layer
protocol withvisibility
property. - Add required
id
property toSource
. After that changeid
should be specified for source upon creation:let terrainSource = RasterDemSource(id: "terrain-source") mapView.mapboxMap.addSource(terrainSource)
- Support string option in
GeoJSONSourceData
. - Allows passing
extraOptions
(which must be a valid JSON object) when creatingStylePackLoadOptions
andTilesetDescriptorOptions
. - Deprecate
MapboxMap/style
andSnapshotter/style
, from now on you can access Style APIs directly fromMapboxMap
andSnapshotter
instance. - Add a new API to enable Tracing with
Tracing.status = .enabled
. CheckoutTracing
reference to see more. - Introduce
FillExtrusionLayer.fillExtrusionRoundedRoof
,FillExtrusionLayer.fillExtrusionEdgeRadius
API. - Introduce
line-depth-occlusion
API. - Introduce
FillExtrusionLayer/fillExtrusionRoundedRoof
,FillExtrusionLayer/fillExtrusionEdgeRadius
API. - Introduce
lineDepthOcclusionFactor
API forLineLayer
s andPolylineAnnotiationManager
. - Add
Codable
support toCameraOptions
,CameraState
,FollowPuckViewportStateBearing
,FollowPuckViewportStateOptions
. - Expose new Style APIs for partial GeoJSON update:
MapboxMap.addGeoJSONSou...
v10.15.0
Changes
Maps SDK (10.15.0)
Bug fixes 🐞
- Fixed an issue when
MapboxMap.point(for:)
could return false negative result by @persidskiy
MapboxCoreMaps (10.15.0)
Features ✨ and improvements 🏁
- Listen to configuration and process cache invalidation requests
Bug fixes 🐞
- Support all the standard Archs when building the frameworks, previously we were missing support for Apple Silicon on Mac Catalyst by @zmiao
- Fix the issue of tiles displaying redundant images during a style switch, when both styles include similarly named sprites by @pozdnyakov
- Fix crash in offline download when no-content responses are received by @pozdnyakov
- Render sky layers behind globe when atmosphere is disabled by @endanke
- Resolve the issue with tile rendering when the tile pack's levelling scheme has a maximum zoom level of less than 16, and the camera zoom surpasses the maximum zoom value defined by the tile pack's levelling scheme by @pozdnyakov
- Fix the HTTP resources expiration time being reset when the Expires header defined the expiration time and the Cache-Control header was present but did not define the expiration time by @pozdnyakov
- Fix the latency during the style switch of fill extrusion layers that have data-driven paint properties by @pozdnyakov
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v10.15.0-rc.1
Changes
- Update MapboxCoreMaps to v10.15.0-rc.1 and MapboxCommon to v23.7.0-rc.1
MapboxCoreMaps (10.15.0-rc.1)
Bug fixes 🐞
- Fix the issue of tiles displaying redundant images during a style switch, when both styles include similarly named sprites by @pozdnyakov
- Fix crash in offline download when no-content responses are received by @pozdnyakov
- Fix the issue of rendering sky layers behind the globe when the atmosphere is disabled by @endanke
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v10.15.0-beta.1
Changes
Maps SDK (10.15.0-beta.1)
Features ✨ and improvements 🏁
- Update MapboxCoreMaps to 10.15.0-beta.1 and MapboxCommon to 23.7.0-beta.1.
CoreMaps (10.15.0-beta.1)
Bug fixes 🐞
- Resolve the missing tile rendering issue when the tile pack's leveling scheme has a maximum zoom level of less than 16.
- Fix the issue of HTTP resources expiration time being incorrectly reset with some Cache-Control, which caused excessive network requests to third-party tile servers.
- Fix the style change latency for fill extrusion layers (in case the layers have
data-driven
paint properties) during style switches.
Dependencies
- Update MapboxCommon to
23.7.0-beta.1
. - Update MapboxCoreMaps to
10.15.0-beta.1
:-
Changelog
* Features ✨ and improvements 🏁 * Update mapbox-common to v23.7.0-beta.1- Bug fixes 🐞
- Resolve the missing tile rendering issue when the tile pack's leveling scheme has a maximum zoom level of less than 16.
- Fix the issue that HTTP resources expiration time being incorrectly reset, which caused excessive network requests.
- Fix the style change latency for fill extrusion layers(in case the layers have data-driven paint properties) during the style switches.
- Bug fixes 🐞
-
Dependency requirements:
- Compatible version of Xcode:
14.1.0
v10.12.3
Changes
CoreMaps (10.12.3)
- Bug fixes 🐞
- Fixes a bug that accidentally cleared icon images when setMemoryBudget was used with megabyte values
- Fix the HTTP resources expiration time being reset when the Expires header defined the expiration time and the Cache-Control header was present but did not define the expiration time
Requirements
- Compatible version of Xcode:
13.1.0