Skip to content

Releases: mapbox/mapbox-maps-ios

v11.0.0-rc.2

20 Nov 17:14
Compare
Choose a tag to compare
v11.0.0-rc.2 Pre-release
Pre-release

Changes

Breaking changes ⚠️

Note: SwiftUI support is an experimental feature, its API may be changed until it stabilizes.

  • [SwiftUI] Fixed point annotations clustering.
  • [SwiftUI] Viewport inset system was refactored:
    • The Viewport.inset(...) function was removed in favor of the Viewport.padding(...)
    • The Viewport.inset(...) previously had an ignoringSafeArea parameter which allowed developers to specify if an edge safe area inset should be accounted for in padding calculation. Starting with this version, instead of this parameter there is a Map.usesSafeAreaInsetsAsPadding(_:) modifier that enables or disables this for all edges.

Features ✨ and improvements 🏁

  • Introduced Slot struct with static properties to manage adding layers to pre-specified slots in a style import. See documentation here.
  • [SwiftUI] Introduced a new Map.additionalSafeAreaInsets(...) modifier that adds additional global safe area insets for the map. Use them to display any UI elements on top of the map. The additional safe area will automatically be accounted for in the camera padding calculation in every Viewport.
  • Added allowOverlapWithPuck and ignoreCameraPadding options to ViewAnnotation and MapViewAnnotation.

Bug fixes 🐞

  • [SwiftUI] Fixed a bug when Viewport.inset(...) didn't use safe area insets on the first load.
  • [SwiftUI] Fixed a map basic coordinator clinging to the first subscriptions.

Dependencies

  • Update MapboxCommon to 24.0.0-rc.3.
  • Update MapboxCoreMaps to 11.0.0-rc.2:
Changelog

Features ✨ and improvements 🏁

  • Added allowOverlapWithPuck and ignoreMapPadding flags to ViewAnnotationOptions.
  • The SDK now avoids placing view annotations on overlapped line geometries if the current bound layer is below other annotated line layers.

Bug fixes 🐞

  • Fixed flickering and wrong positions for elevated symbols.
  • Updating a style layer's source will now trigger repaint.
  • Fixed issue where model loading might have failed when the model used a 32-bit index buffer.
  • Fixed rendering of the updated content on the map after a feature state change if terrain or globe were enabled.
  • Fixed issue where view annotations would disappear on the upper parts of the screen when terrain was enabled.
  • The SDK now triggers view annotation replacement if the associated layer/source gets changed.
  • Fixed a bug where snapshot is rendered without 3D content.

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

v10.16.2

09 Nov 09:33
Compare
Choose a tag to compare

Changes

Bug fixes 🐞

  • Fix line label flickering issue by eliminating the anchor rounding error.

Dependencies

  • Update MapboxCommon to 23.8.4.
  • Update MapboxCoreMaps to 10.16.2:

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

v11.0.0-rc.1

03 Nov 15:59
Compare
Choose a tag to compare
v11.0.0-rc.1 Pre-release
Pre-release

Changes

Breaking changes ⚠️

  • MapboxMap.loadStyle methods changed error type from MapLoadingError to Error.
  • OverviewViewportStateOptions.coordinatesPadding is renamed to OverviewViewportStateOptions.geometryPadding.
  • [SwiftUI] Viewport.overview(geometry:bearing:pitch:coordinatesPadding:maxZoom:offset:) is renamed to Viewport.overview(geometry:bearing:pitch:geometryPadding:maxZoom:offset:)
  • Bearing indication on user location puck is disabled by default to reduce amount map redraws.
    To re-enable bearing update rendering, set mapView.location.options.puckBearingEnabled to true.
  • The default behavior of resetting the viewport to idle is changed. Previously viewport was reset to idle when the user touched the map for longer than 150 ms. Now it will happen when the user pans the map. If the desired behavior is different, you can disable the default by setting mapView.viewport.options.transitionsToIdleUponUserInteraction to false and implementing any gesture that calls mapView.viewport.idle().

Features ✨ and improvements 🏁

  • Refactor MapboxMap.loadStyle to cancel previous style loads when called multiple times.
  • New experimental StyleManager.load(mapStyle:transition:completion) method to load MapStyle in MapboxMap, or Snapshotter:
    mapboxMap.load(mapStyle: .standard(lightPreset: .dawn, showRoadLabels: false)) { _ in
      print("Style is loaded")
    }
  • Support slot for annotation managers and annotation groups.
  • [SwiftUI] Annotation groups can be created with static list of annotations. In the example below polyline annotation group displays two annotations on the same layer.
    Map {
        PolylineAnnotationGroup {
            PolylineAnnotation(lineCoordinates: route.coordinates)
                .lineColor("blue")
            if let alternativeRoute {
                PolylineAnnotation(lineCoordinates: alternativeRoute.coordinates)
                    .lineColor("green")
            }
        }
        .lineCap(.round)
        .slot("middle")
    }
  • [SwiftUI] Expose transitionsToIdleUponUserInteraction modifier.

Bug fixes 🐞

  • Fix issue where 2D puck images are not getting updates.
  • [SwiftUI] Fixed issue when viewport inset with safe area is calculated incorrectly.
  • Fixed issue when quick interaction didn't lead to resetting viewport to idle.

Dependencies

  • Update MapboxCommon to 24.0.0-rc.2.
  • Update MapboxCoreMaps to 11.0.0-rc.1:
    • Changelog
      • Features ✨ and improvements 🏁
        • Update mapbox-common to v24.0.0-rc.1
      • Bug fixes 🐞
        • Fix the line label flickering issue by eliminating the anchor rounding error
        • Honor model-emissive-strength for 3D location indicator
        • Fix rendering of large/complex fill extrusion features

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

v11.0.0-beta.6

24 Oct 11:28
Compare
Choose a tag to compare
v11.0.0-beta.6 Pre-release
Pre-release

Breaking changes ⚠️

  • Style projection can be undefined for styles that do not explicitly specify it, so MapboxMap.projection has become optional.
  • View Annotation API is changed:
    • ViewAnnotationOptions.geometry was removed in favor of ViewAnnotationOptions.annotatedFeature.
    • ViewAnnotationOptions.associatedFeatureId was removed. Use AnnotatedFeature.layerFeature(layerId:featureId:) with ViewAnnotationOptions.annotatedFeature to bind View Annotation to features rendered by any layer.
    • [SwiftUI] Use MapViewAnnotation instead of ViewAnnotation to display view annotations in SwiftUI.
    • [SwiftUI] MapViewAnnotation initializer doesn't receive configuration parameters anymore. Use modifier functions to configure annotaiton:
     Map {
       MapViewAnnotation(coordinate: coordinate) {
          Text("🏠")
       }
       .allowOverlap(false)
       .variableAnchors([ViewAnnotationAnchorConfig(anchor: .bottom)])
     }
  • OverviewViewportStateOptions.padding is renamed to OverviewViewportStateOptions.coordinatePadding, the OverviewViewportStateOptions.padding now represents the camera padding.

Features ✨ and improvements 🏁

  • New ViewAnnotation class is added to simplify work with view annotations, use it instead of ViewAnnotationOptions.
  • Support for Dynamic View Annotations. Use them to attach View annotations to any feature rendered by map, for example you can visualize additional information along the routes, areas, or points. The annotations will reposition themselves when user pans the map. Check the ViewAnnotation and MapViewAnnotation documentation or the pre-built DynamicViewAnnotationExample.
dva_annotations
  • Add MapboxMaps.camera(for:camera:coordinatesPadding:maxZoom:offset).
  • Add MapViewDebugOptions.padding debug option.
  • Add maxZoom and offset parameters to OverviewViewportStateOptions.
  • Add "keep-legacy-style-pack" style pack load extra option that prevents from the style package removal from the legacy storage
  • Enable rendering of fill extrusion flood lights on the ground with fully transparent fill extrusions
  • Skip location and bearing updates if new value changes are under fixed epsilon
  • Add cameraForCoordinates overload so that the padding for map & geometry can be specified separately.
  • Disable terrain when zoom-dependent exaggeration expression evaluates to zero.
  • Add support for glb 3d tiles
  • Align hillshade illumination direction with 3d lights

Bug fixes 🐞

  • Fix issue when transition to Overview Viewport resulted in double padding.
  • [SwiftUI] Fix issue when Overview Viewport is incorrect if set as initial viewport.
  • Improve handling of inlined style fragments
  • Do not overwrite style URL when setting invalid style JSON
  • Don't store SDK version in TileStore

Dependencies

  • Update MapboxCommon to 24.0.0-beta.7.
  • Update MapboxCoreMaps to 11.0.0-beta.7.

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

v11.0.0-beta.5

09 Oct 16:22
Compare
Choose a tag to compare
v11.0.0-beta.5 Pre-release
Pre-release

⚠️ Known issues ⚠️

  • MapboxMap.setProjection(_:) throws an error if the underlying style doesn't define a projection or if a style hasn't completed loading yet.

Breaking changes ⚠️

  • Consolidate FetchTileFunctionCallback and CancelTileFunctionCallback by single type TileFunctionCallback.

Features ✨ and improvements 🏁

  • Add a new CustomLayer API to simplify manipulation of layers with custom rendering (aka "CustomLayerHost").
  • The following APIs have been promoted to stable:
    • LineLayer/lineDepthOcclusionFactor, LineLayer/lineDepthOcclusionFactorTransition, LineLayer/lineEmissiveStrength and LineLayer/lineEmissiveStrengthTransition
    • SymbolLayer/iconImageCrossFade, SymbolLayer/iconImageCrossFadeTransition, SymbolLayer/iconEmissiveStrength, SymbolLayer/iconEmissiveStrengthTransition, SymbolLayer/textEmissiveStrength and SymbolLayer/textEmissiveStrengthTransition
    • BackgroundLayer/backgroundEmissiveStrength and BackgroundLayer/backgroundEmissiveStrengthTransition
    • CircleLayer/circleEmissiveStrength and CircleLayer/circleEmissiveStrengthTransition
    • FillLayer/fillEmissiveStrength and FillLayer/fillEmissiveStrengthTransition
    • AmbientLight, DirectionalLight and related APIs.
  • Fix memory leak in SwiftUI.
  • Expose MapViewDebugOptions in SwiftUI.
  • Improve the caching model for the Custom Raster Source.
  • Flood lighting and AO ground contribution in draped mode
  • Optimize Custom Raster source data update
  • Increase rendering performance of shadows
  • Relax style parsing of an unknown style layer properties
  • Optimise memory usage in the fill-extrusion layer
  • Improve the rendering performance of a symbol layer that uses symbol-sort-key property
  • Reduce memory usage in fill-extrusion flood light and ground ambient occlusion

Bug fixes 🐞

  • Fix a bug where the map would not zoom above a certain threshold on high-pitched views
  • Fix crashes if 3D layers are used alone on terrain or globe without any other layer types
  • Fix line layer leaking if placed behind the satellite layer
  • Fix line and raster layers interop for draped mode
  • Fix a crash problem that occurred when consecutive snapshot requests were made
  • Correct half-texel misalignment in raster-color lookup texture sampling
  • Use the system's default fraction digit setting for currency formatting
  • Fix erroneous shadow map sampling of distant landmarks
  • Fix incorrect level-of-detail model being chosen for trees in some scenarios
  • Fix the style layer minimum and maximum zoom default values

Changes in: 11.0.0-beta.1, 11.0.0-beta.2, 11.0.0-beta.3, 11.0.0-beta.4

Dependencies

  • Update MapboxCommon to 24.0.0-beta.6.
  • Update MapboxCoreMaps to 11.0.0-beta.6.

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

v10.16.1

04 Oct 10:17
Compare
Choose a tag to compare

Features ✨ and improvements 🏁

  • Add privacy manifest - PrivacyInfo.xcprivacy.

Bug fixes 🐞

  • Fix StyleColor failing to initialize with non-sRGB color spaces by converting supplied UIColors to sRGB color space by default.
  • Fix incorrectly set begin timestamp for the RenderFrameFinished event.
  • Cache featureState for newly added source in case it is not available in renderer.
  • Allow pausing HTTP requests in the background.
  • Fix line and raster layers interop for draped mode.
  • Fix a crash that occurred when consecutive snapshot requests were made.
  • Use the system's default fraction digit setting for currency formatting.

Dependencies

  • Update MapboxCommon to 23.8.3.
  • Update MapboxCoreMaps to 10.16.1.

Dependency requirements:

  • Compatible version of Xcode: 14.1.0.

v11.0.0-beta.4

21 Sep 05:57
Compare
Choose a tag to compare
v11.0.0-beta.4 Pre-release
Pre-release

Changes

Breaking changes ⚠️

  • StyleColor.red, StyleColor.green, StyleColor.blue, StyleColor.alpha are not in use anymore and got removed.
  • The syncSourceAndLayerIfNeeded method in every annotation manager (e.gPointAnnotationManager and others) was removed from the public API.

Features ✨ and improvements 🏁

  • Add MSAA support with the MapInitOptions/antialiasingSampleCount property.
  • StyleColor - add support for all color formats as defined by Mapbox Style Spec.
  • Introduce experimental Custom Raster Source APIs: StyleManager/addCustomRasterSource, StyleManager/setCustomRasterSourceTileData, StyleManager/invalidateCustomRasterSourceTile, StyleManager/invalidateCustomRasterSourceRegion.
  • Introduce new Map Content Gesture System, please refer to Map Content Gestures Guide for more information and guidance.

MapboxCoreMaps to 11.0.0-beta.5:

Features ✨ and improvements 🏁

  • Add properties to control fade out of model and fill-extrusion layers when pitch is used
  • Improve fog rendering performance
  • Add getCenterAltitudeMode function to the public API.
  • Improve fill layer and model layer rendering performance on high pitch views.
  • Add custom raster source API to support custom raster tiles generated/provided by the client.
  • Improve GPU performance by drawing opaque 3D geometry without blending
  • Introduce experimental symbol-z-elevate property to elevate symbols along with the buildings that are in the same place. The feature is supported for symbols with point placement only.
  • Update Mapbox Common to v24.0.0-beta.5
  • Add vertical-range property for fog

Bug fixes 🐞

  • Fix issue where the terrain didn't work if defined within a style fragment
  • The Custom Geometry Source fetchTileFunction() and cancelTileFunction() callbacks are invoked on the client thread.
  • Fixes a rendering error that broke symbol layers on Samsung S22 devices
  • Cache featureState for newly added source in case it is not available in renderer
  • Fix issue with model layer blending with geometry tile source
  • Fix incorrectly set begin timestamp for the RenderFrameFinished event

Dependency requirements:

  • Compatible version of Xcode: 14.1.0

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