Skip to content

Releases: mapbox/mapbox-maps-ios

v11.0.0-beta.3

08 Sep 15:04
Compare
Choose a tag to compare
v11.0.0-beta.3 Pre-release
Pre-release

Changes

Maps SDK (11.0.0-beta.3)

Breaking changes ⚠️

  • MapboxMap.dragStart() and MapboxMap.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 and modelReceiveShadows options of Puck3DConfiguration 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

07 Sep 06:43
Compare
Choose a tag to compare

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

23 Aug 14:57
Compare
Choose a tag to compare
v11.0.0-beta.2 Pre-release
Pre-release

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 on Layer 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.

Changes in 11.0.0-beta.1

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

23 Aug 11:49
Compare
Choose a tag to compare
v10.16.0-rc.1 Pre-release
Pre-release

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

10 Aug 12:43
Compare
Choose a tag to compare
v10.16.0-beta.1 Pre-release
Pre-release

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

02 Aug 14:37
Compare
Choose a tag to compare
v11.0.0-beta.1 Pre-release
Pre-release

Changes

⚠️ More info on migrating from v10 to v11 can be found here: Mapbox Maps v11 Migration Guide.

  • 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 to ViewportManager.
  • Apply ModelScaleMode.viewport to Puck3D configuration and remove the custom expression for the modelScale of the puck. This means if you are using a constant for Puck3DConfiguration/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 the Snapshotter that returns tile ids covering the map.
  • Add optional maxZoom and offset parameters to MapboxMap.camera(for coordinateBounds:). MapboxMap.camera(for coordinateBounds:), MapboxMap.camera(for coordinates:), and MapboxMap.camera(for geometry:) no longer return a padding value.
  • Location is splitted into Location and Heading structs, the location and heading data are now animated individually.
  • Replace loadStyleJSON(_:completion:)/loadStyleJSON(_:completion:) with overloaded loadStyle(_: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 the Layer 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 all Layers 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 to GestureType 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 to MapboxMap that returns tile ids covering the map.
  • Expose owner property for CameraAnimator protocol
  • Updated core styles to the latest versions.
  • Merge TilesetDescriptorOptions and TilesetDescriptorOptionsForTilesets. To enable tileset descriptor creation for a list of tilesets that are not part of the original style use TilesetDescriptorOptions.
  • 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 and Snapshotter now expose on-prefixed properties that allows you to subscribe to map events via observe and observeNext 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 from observe and observeNext should be stored, otherwise the subscription will be immediately canceled;
    • The same on-prefixed properties can now be used as Combine.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 and Snapshotter.observe have been removed.
  • Deprecate PointAnnotationManager.iconTextFit and PointAnnotationManager.iconTextFitPadding in favor of PointAnnotation.iconTextFit and PointAnnotation.iconTextFitPadding.
  • Remove deprecated PuckBearingSourceand related APIs.
  • Experimental API MapboxMap/setMemoryBudget was renamed to MapboxMaps/setTileCacheBudget and promoted to stable.
  • Location consumer methods have been renamed to align with Swift API Design Guidelines. Use addLocationConsumer(_:) and removeLocationConsumer(_:) rather than addLocationConsumer(newConsumer:) and removeLocationConsumer(consumer:).
  • SourceType and LayerType are now structs with static variables instead of enums
  • Remove ResourceOptions and ResourceOptionsManager. Introduce MapboxOptions and MapboxMapsOptions 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 or MapboxAccessToken file when Maps service are initialized; if you wish to set access token programmatically, it is highly recommended to set it before initializing a MapView.
      import MapboxMaps
      
      MapboxOptions.accessToken = accessToken
    • TileStoreno longer requires TileStoreOptions.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:)
  • Expose new 3D Lights API: AmbientLight and DirectionalLight.
  • TypeConversionError, SnapshotError, and ViewAnnotationManagerError are now structs with static variables instead of enums
  • Extend Layer protocol with visibility property.
  • Add required id property to Source. After that change id 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 creating StylePackLoadOptionsand TilesetDescriptorOptions.
  • Deprecate MapboxMap/style and Snapshotter/style, from now on you can access Style APIs directly from MapboxMap and Snapshotter instance.
  • Add a new API to enable Tracing with Tracing.status = .enabled. Checkout Tracing reference to see more.
  • Introduce FillExtrusionLayer.fillExtrusionRoundedRoof , FillExtrusionLayer.fillExtrusionEdgeRadius API.
  • Introduce line-depth-occlusion API.
  • Introduce FillExtrusionLayer/fillExtrusionRoundedRoof, FillExtrusionLayer/fillExtrusionEdgeRadius API.
  • Introduce lineDepthOcclusionFactor API for LineLayers and PolylineAnnotiationManager.
  • Add Codable support to CameraOptions, CameraState, FollowPuckViewportStateBearing, FollowPuckViewportStateOptions.
  • Expose new Style APIs for partial GeoJSON update:
MapboxMap.addGeoJSONSou...
Read more

v10.15.0

27 Jul 15:11
Compare
Choose a tag to compare

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

13 Jul 11:28
Compare
Choose a tag to compare
v10.15.0-rc.1 Pre-release
Pre-release

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

01 Jul 00:50
Compare
Choose a tag to compare
v10.15.0-beta.1 Pre-release
Pre-release

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.

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

v10.12.3

21 Jun 11:35
Compare
Choose a tag to compare

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