Skip to content

Releases: mapbox/mapbox-maps-ios

v10.5.0-rc.1

21 Apr 03:16
072225f

Choose a tag to compare

v10.5.0-rc.1 Pre-release
Pre-release
  • Minimum compatible version of Xcode: 13.0.0

Changes

  • Add support for runtime source properties. (#1267)
  • Start location services lazily. (#1262)
  • Fix localization crash on iOS 11 and 12. (#1278)
  • Increase annotation tap target to conform to Apple Human Interface Guidelines. (#1283)
  • Update to MapboxCoreMaps 10.5.0-rc.1 and MapboxCommon 21.3.0-rc.2. (#1281)
  • Expose API to set memory budget for MapboxMap. (#1288)

v10.4.3

13 Apr 20:22
61ba796

Choose a tag to compare

  • Compatible version of Xcode: 12.5.1

Changes

  • Updates to MapboxCommon 21.2.1 to fix an issue with loading content from the cache. (#1271)
  • Fixes an issue where location services were started before they were needed. (#1262)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.4.3/MapboxMaps.zip?access_token=<access-token>

v10.5.0-beta.1

07 Apr 13:32
c60d536

Choose a tag to compare

v10.5.0-beta.1 Pre-release
Pre-release

Changes

  • Mitigate OfflineRegionManager.mergeOfflineDatabase(for:completion) throwing TypeConversionError.unexpectedType on a successfull merge. Introduce OfflineRegionManager.mergeOfflineDatabase(forPath:completion) as the correct way to merge offline database. (#1192)
  • Limit MapboxMap.point(for: CLLocationCoordinate2D) to the bounds of map view (#1195)
  • Add support for app extensions. (#1183)
  • BasicCameraAnimator.cancel() and .stopAnimation() now invoke the completion blocks with UIViewAnimatingPosition.current instead of crashing with a fatalError when invoked prior to .startAnimation() or .startAnimation(afterDelay:). (#1197)
  • CameraAnimationsManager.stopAnimations() will now cancel all animators regardless of their state. Previously, only animators with state == .active were canceled. (#1197)
  • Fix animator-related leaks. (#1200)
  • Improve AnyTouchGestureRecognizer's interaction with other gesture recognizers. (#1210)
  • Expose convenience properties and methods to transform CoordinateBounds. (1226)
  • Update annotation examples. (#1215)
  • Add Style.setLight(_:) to set light onto a style. Update BuildingExtrusionsExample with an example to set a light source on the style. (#1234)
  • Remove FollowPuckViewportStateOptions.animationDuration, a workaround for the moving target problem. (#1228)
  • Deprecate FollowPuckViewportStateOptions.animationDuration, a workaround for the moving target problem. (#1228)
  • Add map view example with debugOptions. (#1225)
  • Introduce line-trim-offset property for LineLayer. (#1231)
  • Add MapboxMap.coordinateBoundsUnwrapped. (#1241)
  • Update DefaultViewportTransition to solve the moving target problem. (#1245)
  • Increase deceleration cutoff threshold from 20 to 35 to prevent camera changes
    after animation stops. (#1244)
  • API for using globe projection has been moved to Style.setProjection(_:) and Style.projection and is no longer experimental. (#1235)
  • Add OfflineRegion.getStatus(completion:). (#1239)
  • Add a prefix maps-ios to all Log message's category. (#1250)

Dependencies

  • Update to MapboxCoreMaps 10.5.0-beta.1 and MapboxCommon 21.3.0-beta.2. (#1235)

    Breaking changes ⚠️

    • Map projection API moved from Map to Style, in order to allow specifying the map projection in the style
    • Automatic transition between the globe and mercator projection updated to appear visually more subtle.

    Features ✨ and improvements 🏁

    • Map render call optimized further by further reducing computational overhead.
    • Layer properties transitions performance improved if the layer is transitioning to the same constant value or if transitioning from/to data-driven property.
    • New line layer paint property introduced: '{"line-trim-offset", [trim-start, trim-end]}', to take the line trim-off percentage range based on the whole line range [0.0, 1.0]. The property will only be effective when 'line-gradient' property is set. The line part between [trim-start, trim-end] will be marked as transparent to make a line gradient a vanishing effect. If either 'trim-start' or 'trim-end' offset is out of valid range, the default range [0.0, 0.0] will be set.
    • Globe view controls revamped for more intuitive interaction with touch controls.
    • OfflineRegion::getStatus() API added to get the completion status and the local size of the existing legacy offline regions.

    Bug fixes 🐞

    • Dispatched in-flight events will not be delivered if 'unsubscribe' is called before an event is delivered.
    • Transitions between globe and mercator projection do not cull tiles incorrectly anymore.
    • Terrain-related camera issues fixed, previously making it appear under terrain, or incorrectly repositioned after exaggeration change.
    • Terrain rendering disabled on GPUs not supporting Vertex Texture Fetch.
    • Fixed a bug that occasionally prevented symbols from loading.

Dependency requirements:

  • Compatible version of Xcode: 13.0.0

v10.4.2

07 Apr 16:33
8e4c5ee

Choose a tag to compare

Changes

  • Add OfflineRegion.getStatus(completion:). (#1239)
  • Update to MapboxCoreMaps 10.4.2 (#1256)

    Bug fixes 🐞

    • Re-introduce the API to get the status of the existing offline regions, so that the clients can get the completion status and the local size of the existing legacy offline regions. (#3192)
    • Fixes a bug that occasionally prevents symbols from loading (#3191)

Dependency requirements:

  • Compatible version of MapboxCoreMaps: 10.4.2
  • Compatible version of MapboxCommon: 21.2.0
  • Compatible version of Xcode: 12.5.1

v10.4.1

28 Mar 20:24
635fdd1

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: 10.4.1
  • Compatible version of MapboxCommon: 21.2.0
  • Compatible version of Xcode: 12.5.1

Changes

  • Revert to using metal view draw notifications (setNeedsDisplay() instead of draw()). (#1216)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.4.1/MapboxMaps.zip?access_token=<access-token>

v10.4.0

23 Mar 15:38
513c6a8

Choose a tag to compare

Changes

  • Update to MapboxCoreMaps 10.4.1 and MapboxCommon 21.2.0. (#1190)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.4.0/MapboxMaps.zip?access_token=<access-token>

v10.4.0-rc.1

09 Mar 21:11
8cf3f93

Choose a tag to compare

v10.4.0-rc.1 Pre-release
Pre-release
  • Compatible version of Xcode: 12.5.1

Changes Since v10.4.0-beta.1

MapView

  • Enable explicit drawing behavior for metal view(call draw() explicitly
    instead of setNeedsDisplay when view's content need to be redrawn). (#1157)

Gestures

  • Restore cancellation of animations on single tap. (#1166)
    • The single tap gesture depends on the double tap to zoom in gesture's
      failure. To avoid registering a single tap if there's subsequently a double
      tap, when the first tap is detected, the SDK waits to see if there will be
      a second tap before deciding which gesture was performed. This means there
      will be a delay before the animations are canceled. If that delay is
      unacceptable, disable the double tap to zoom in gesture, to allow the
      single tap gesture to recognize immediately.

Location

  • Fix issue where invalid locations could be emitted when setting a custom
    location provider. (#1172)
  • Fix crash in Puck2D when location accuracy authorization is reduced. (#1173)

Attribution

  • Fix an issue where plain text source attribution was not populated in
    attribution dialog. (#1163)

Camera Animations

  • BasicCameraAnimator.owner is now public. (#1181)
  • The animation owner for ease-to and fly-to animations is now
    "com.mapbox.maps.cameraAnimationsManager". (#1181)

Dependencies

  • Update to MapboxCoreMaps 10.4.0-rc.1 and MapboxCommon 21.2.0-rc.1. (#1158)
    • Fixed too small bounds returned by Map::latLngBoundsZoomForCamera with
      tilted view and Map::latLngBoundsZoomForCameraUnwrapped when viewing
      >360° longitude.

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.4.0-rc.1/MapboxMaps.zip?access_token=<access-token>

v10.4.0-beta.1

24 Feb 15:19
dbe7f84

Choose a tag to compare

v10.4.0-beta.1 Pre-release
Pre-release

Minimum Supported Versions

  • iOS: 11.0
  • Xcode: 12.5.1
  • Swift: 5.4

MapView

  • [Bug Fix] Prevent rendering in background by pausing/resuming display link in response to application or scene lifecycle events. (#1086)

Viewport

  • [Bug Fix] Sync the updating animations of the FollowPuckViewportState and 2D/3D location pucks. This change also brings smooth animation to 3D pucks. (#1090)

Location

  • [Feature] Add LocationOptions.puckBearingEnabled to control whether the puck rotates to track the bearing source. (#1107)

Gestures

  • [Feature] Add GestureOptions.pinchPanEnabled and .pinchZoomEnabled. (#1092)
  • [Bug Fix] Fix issue where single tap and double tap to zoom in gestures could recognize simultaneously. (#1113)
  • [Bug Fix] Fix camera change events being fired after map has stopped moving. (#1118)
  • [Feature] Add GestureOptions.focalPoint property to allow restricting the point about which zoom and rotate gestures are applied. (#1122)
  • [Bug Fix] Fix an issue where pinch gesture emitted superfluous camera changed events and remove experimental GestureOptions.pinchBehavior property that was previously introduced as an imperfect workaround. (#1125, #1137)

Style

  • [Feature] Expose public initializers for LayerInfo and SourceInfo so that these values can be constructed when unit testing. (#1144)

View Annotations

  • [Feature] Add ViewAnnotationManager.removeAll() to remove all view annotations.
  • [Feature] Introduce APIs to observe view annotation frames and visibility: (#1136)
    • ViewAnnotationUpdateObserver protocol
    • ViewAnnotationManager.addViewAnnotationUpdateObserver(_:)
    • ViewAnnotationManager.removeViewAnnotationUpdateObserver(_:)

Ornaments

  • [Feature] Exposed UIViews for logo, compass, scale bar, and attribution button to enable positioning other views relative to them. (#1130)

Dependencies

  • Update to MapboxCoreMaps 10.4.0-beta.1 and MapboxCommon 21.2.0-beta.1. (#1126)

Features ✨ and improvements 🏁

  • Improve rendering performance by coalescing map updates when possible.
  • Add StyleManager::hasStyleImage API that checks whether an image is in the style or not.
  • Improve Snapshotter performance by using a lightweight scheduler instead of platform runloop.
  • Map now waits on sprite sheet loading before rendering.
  • Improve map rendering performance by avoiding calculations for all the non-transitional style layer paint properties.
  • Enable using of tile pack scheme from TileJSON.
  • Improve map rendering performance by decreasing de/allocations in map placement code.
  • Avoid style layer properties transition calculation when TransitionOptions::duration is set to 0.
  • Enable tile packs for DEM terrain tiles, it includes both Offline API and TileStoreUsageMode::ReadAndUpdate resource option.
  • Render tiles with partial content while the glyph dependencies are loading.
  • Canonicalize URLs and enable Offline API usage for the 3dtiles/v1 tiles.

Bug fixes 🐞

  • Fix screen coordinate queries when using zero pitch and high zoom values.
  • Add .xcframework bundle name for MapboxCoreMaps.
  • Avoid possible crash at program exit caused by dummy tracer accessed after the destruction.
  • Fix crash for the case when a map event is handled by an Observer of a destructed map.
  • Fix shimmering artifact when pitched raster tiles with compressed textures are rendered.

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.4.0-beta.1/MapboxMaps.zip?access_token=<access-token>

v10.3.0

11 Feb 04:26
47f9d2d

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.3.2
  • Compatible version of MapboxCommon: v21.1.0
  • Compatible version of Xcode: 12.5.1

Viewport

  • Added Viewport API at MapView.viewport (#996, #1040, #1050, #1058)
    • Sync the map camera with the location puck using FollowPuckViewportState.
    • Show an overview of a geometry using OverviewViewportState.
    • Animate a transition between following the puck and showing an overview using DefaultViewportTransistion.
    • Build custom states and transitions by implementing ViewportState and ViewportTransition.
    • To set the current state, use Viewport.transition(to:transition:completion:).
    • This API is experimental, which means that while it is production-ready, we reserve the right to make breaking
      API changes without a major version bump. To access the API, import the SDK with @_spi(Experimental) import MapboxMaps.
    • See the docs for full details: https://docs.mapbox.com/ios/maps/api/10.3.0/Viewport.html

Known Issues

  • FollowPuckViewportState and PuckType.puck2D() use different animation timing. The fix (#1090) will be shipped in a future release after further testing.

MapboxMap

  • Exposed triggerRepaint() to allow manual map repainting. (#964)

Style

  • Exposed TransitionOptions to allow control over symbol fade duration. (#902)
  • Added Style.removeTerrain() to allow removing terrain. (#918)

Snapshotter

  • Snapshotter initialization now triggers a turnstile event. (#908)

Location

  • Added static method Puck2DConfiguration.makeDefault(showBearing:) which enables creating a 2D puck configuration with a bearing indicator. (#980)
  • Fixed a bug where 2D puck location was never set when location accuracy authorization was reduced. (#989)
  • Fixed a bug where setting LocationManager.options would cause the LocationProvider to be reconfigured. (#992)
  • Added Puck2DConfiguration.accuracyRingColor and .accuracyRingBorderColor to enable customizing the color of the 2D puck accuracy ring. (#1057)

Gestures

  • Removed pitch gesture change angle requirements to avoid map freezing during gesture. (#1089)

Ornaments

  • Fixed compass button regression introduced in 10.3.0-rc.1. (#1083)

Legacy Offline

  • Added new APIs for OfflineRegion. You can now setMetadata, invalidate or purge the region. (#1026, #1060)

MapboxCoreMaps

  • Updated to MapboxCoreMaps 10.3.2 and MapboxCommon 21.1.0. (#1078, #1091, #1104)

Features ✨ and improvements 🏁

  • Update mapbox-common to v21.1.0
  • Improve performance for symbol layout rendering in continuous mode
  • Introduce metadata setter API for the legacy offline region
  • Optimize zooming on terrain and globe
  • Thin out repeated line labels at overscaled tiles in order to avoid excessive memory usage
  • Tile cache refrains from eviction of the tiles that are parents for the most recently added tile
  • Remove experimental designation from persistent layer APIs
  • Avoid re-creation of the available sprites set
  • The tile cache clears tiles graphics data before performing the tiles eviction, when budget is set in megabytes
  • Delete geometry tiles layout result on worker thread
  • When memory budget in megabytes is set, engine will try to use ETC1 compression for raster layer to decrease GPU memory consumption
  • Implements depth sorting per mesh and better transparency for models
  • Implement Metal MSAA support
  • Remove extra deallocations from render tree destructor
  • Minor optimization related to globe mesh construction
  • Fill extrusion layer support for globe view
  • Limit the delayed network request maximum time in the scheduler task queue, and thus avoid excessive memory usage
  • Line gradient is pre-calculated on worker thread during bucket creation. Line gradient gets updated only if the line-gradient layer property value is modified

Bug fixes 🐞

  • Include geometry data buffer size when calculating total size of a tile
  • Fix crash at application exit on iOS platform
  • Fix screen coordinate queries when using zero pitch and high zoom values
  • vector-tile updated to v1.0.4, fixing an end of buffer exception
  • Reduces drag sensitivity around and above horizon
  • Erase corrupt tiles from TileStore
  • Add perspective correction for non-rectangular images
  • Fix rendering artifacts when compressed and un-compresed raster tiles are rendered
  • Fix globe rendering artifact on darwin platform when MSAA is enabled
  • Fix a crash when using a custom layer on Metal with MSAA disabled
  • Fixed terrain occluding 3D location indicator
  • Avoid creating new symbol instances if the feature is outside of tile boundaries to avoid incorrect symbol cross tile indexing. In the meanwhile, disable draping for this layer otherwise symbol will only be shown on the tile that has the symbol instance created.
  • Fix location indicator layer rendering when SwiftShader is used
  • Fix fill extrusion disappearance after render tiles are returned from the tile cache when the source memory budget is set in megabytes
  • Avoid possible crash at program exit caused by dummy tracer accessed after destruction
  • Fix crash for the case when a map event is handled by an Observer of a destructed map
  • Deliver event to observable subscribers even if observable is already destructed

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.3.0/MapboxMaps.zip?access_token=<access-token>

v10.3.0-rc.1

27 Jan 09:50
aedeb10

Choose a tag to compare

v10.3.0-rc.1 Pre-release
Pre-release

Dependency requirements:

  • Compatible version of MapboxCoreMaps: 10.3.0-rc.1
  • Compatible version of MapboxCommon: 21.1.0-rc.1
  • Compatible version of Xcode: 12.5.1

Changes

  • Added new APIs for OfflineRegion. You can now setMetadata, invalidate or purge the region. (#1026, #1060)
  • Refined the Viewport API which was introduced in 10.3.0-beta.1. (#1040, #1050, #1058)
  • Location puck improvements
    • Added static method Puck2DConfiguration.makeDefault(showBearing:) which enables creating a 2D puck configuration with a bearing indicator. (#980)
    • Added Puck2DConfiguration. accuracyRingColor and . accuracyRingBorderColor to enable customizing the color of the 2D puck accuracy ring. (#1057)

Dependencies

  • Update to MapboxCoreMaps v10.3.0-rc.1 (#1051)
    • Features ✨ and improvements 🏁
      • Introduce metadata setter API for the legacy offline region
      • Optimize zooming on terrain and globe
      • Update mapbox-common to v21.1.0-rc.1
      • Thin out repeated line labels at overscaled tiles in order to avoid excessive memory usage
    • Bug fixes 🐞
      • Fix crash at application exit on iOS platform
      • Fix screen coordinate queries when using zero pitch and high zoom values
  • Updates MapboxCommon to 21.1.0-rc.1 (#1051)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.3.0-rc.1/MapboxMaps.zip?access_token=<access-token>