Skip to content

Releases: mapbox/mapbox-maps-ios

Mapbox Maps: v10.0.0-beta.18.1

28 Apr 19:16
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.20
  • Compatible version of MapboxCommon: v11.0.1
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

Features ✨ and improvements 🏁

Camera Animations

  • A new CameraTransition struct has been introduced to allow better control on the "from" and "to" values of a camera animation (#282)
    • A mutable version of the CameraTransition struct is passed into every animation block.
  • Animations can only be constructor injected into CameraAnimator as part of the makeAnimator* methods on mapView.camera.
  • The makeCameraAnimator* methods have been renamed to makeAnimator* methods

Gestures

  • Gestures now directly call mapboxMap.__map.setCamera() instead of using CoreAnimation

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.0.0-beta.18.1/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-beta.18

23 Apr 21:22
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.20
  • Compatible version of MapboxCommon: v11.0.1
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

Breaking changes ⚠️

  • MapView

    • The initializer has changed to public init(frame: CGRect, mapInitOptions: MapInitOptions = MapInitOptions(), styleURI: StyleURI? = .streets).
    • MapOptions has been renamed MapConfig. A new MapOptions has been introduced; its properties are required to initialize the underlying map object.
    • A MapInitOptions configuration struct has been introduced. It currently wraps both ResourceOptions and MapOptions and is used when initializing a MapView.
    • baseURL and accessToken can no longer be set from a nib or storyboard. Instead a new MapInitOptionsProvider protocol and an IBOutlet on MapView has been introduced to allow a customer MapInitOptions to be provided to the MapView. This provider is not used when initializing a MapView programmatically.
    • The Manager suffix has been removed from MapView.gesturesManager, MapView.ornamentsManager, MapView.cameraManager, MapView.locationManager, and MapView.annotationsManager.
    • BaseMapView.camera has been renamed to BaseMapView.cameraOptions.
  • Foundation

    • AccountManager has been removed. A new CredentialsManager replaces it. You can use CredentialsManager.default to set a global access token.
    • MapboxCoreMaps protocol conformances have been encapsulated. (#265)
      • ObserverConcrete has been removed.
      • BaseMapView no longer conforms to MapClient or MBMMetalViewProvider, and the methods they required are now internal.
      • The setter for BaseMapView.__map is now private
      • Snapshotter no longer conforms to Observer, and the method it required is now internal.
    • The BaseMapView.__map property has been moved to BaseMapView.mapboxMap.__map. (#280)
    • A CameraOptions struct has been introduced. This shadows the class of the same name from MapboxCoreMaps and. This avoids unintended sharing and better reflects the intended value semantics of the CameraOptions concept. (#284)
  • Dependencies

    • Updated dependencies to MapboxCoreMaps 10.0.0-beta.20 and MapboxCommon 11.0.1
    • ResourceOptions now contains a TileStore instance. Tile store usage is enabled by default, the resource option tileStoreEnabled flag is introduced to disable it.
    • TileStore no longer returns cached responses for 401, 403 and unauthorized requests.
    • Fixed a bug where TileStore would not invoke completion closures (when client code did not keep a strong reference to the tile store instance).

Features ✨ and improvements 🏁

  • Introduced the OfflineManager API that manages style packs and produces tileset descriptors for use with the tile store. The OfflineManager and TileStore APIs are used in conjunction to download offline regions and associated "style packs". These new APIs replace the deprecated OfflineRegionManager. Please see the new OfflineManager guide for more details.

Bug fixes 🐞

  • Fixed a crash in line layer rendering, where the uniform buffer size had an incorrect value.

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.0.0-beta.18/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-beta.17

13 Apr 20:17
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.19
  • Compatible version of MapboxCommon: v11.0.0
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

Breaking changes ⚠️

  • AnnotationManager no longer conforms to Observer and no longer has a peer. (#246)

  • AnnotationSupportableMap is now internal. (#246)

  • MapView

    • Initializer has been changed to public init(frame: CGRect, resourceOptions: ResourceOptions, glyphsRasterizationOptions: GlyphsRasterizationOptions = GlyphsRasterizationOptions.default, styleURI: StyleURI? = .streets).
    • StyleURL has been renamed to StyleURI
    • OrnamentSupportableMapView is not internal.
  • Ornaments

    • LayoutPosition has been deprecated in favor of OrnamentPosition.
    • LayoutVisibility has been depracted in favor of OrnamentVisibility.
    • showsLogoView has been renamed to _showsLogoView.
    • showsCompass and showsScale have been deprecated. Visibility properties can be used to set how the Compass and Scale Bar should be shown.
  • Foundation

    • cancelTransitions has been renamed to cancelAnimations.
    • setCamera() with individual parameters has been deprecated in favor of setCamera(to targetCamera: CameraOptions...) which requires CameraOptions.
    • The following camera convenience functions have been removed:
      • public func transitionCoordinateBounds(newCoordinateBounds: CoordinateBounds, animated: Bool = false)
      • public func transitionCoordinateBounds(to newCoordinateBounds: CoordinateBounds, edgePadding: UIEdgeInsets, animated: Bool = false, completion: ((UIViewAnimatingPosition) -> Void)? = nil)
      • public func transitionVisibleCoordinates(newCoordinates: [CLLocationCoordinate2D], edgePadding: UIEdgeInsets, animated: Bool = false)
      • public func transitionVisibleCoordinates(to newCoordinates: [CLLocationCoordinate2D], edgePadding: UIEdgeInsets, bearing: CLLocationDirection, duration: TimeInterval, animated: Bool = false, completion: ((UIViewAnimatingPosition) -> Void)? = nil)
      • public func resetPosition()
      • public func resetNorth(_ animated: Bool = false)
    • In CameraAnimator, fractionComplete is now of type Double and delayFactor now returns a Double.
    • MapboxLogoView has been renamed to LogoView.
    • MapboxLogoSize has been renamed to LogoSize.
  • Style

    • Initializer is now marked as internal.
    • styleUri property has been renamed to uri.
    • The url property from StyleURL has been removed.
  • Expressions

    • init(from: jsonObject) and public func jsonObject() have been removed.
    • Element.op has been renamed to Element.operator.
    • Argument.array has been renamed to Argument.numberArray.
    • ValidExpressionArgument has been renamed to ExpressionArgumentConvertible.

Bug fixes 🐞

  • Fixes an issue that could prevent annotations from being selectable. (#246)
  • Fixes an issue where some JSON layers are not be decoded correctly. (#248)
  • Fixes an issue where the location puck was not animating. (#256)

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.0.0-beta.17/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-beta.16

29 Mar 21:21
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: 10.0.0-beta.17
  • Compatible version of MapboxCommon: 10.0.2
  • Compatible version of Xcode: 12.2+
  • Compatible version of MacOS: Big Sur

Changes

Breaking changes ⚠️

  • The CameraManager.moveCamera method has been removed. (#217)
  • UIView.animate is no longer supported. Instead, use CameraAnimators. (#217)
  • Developers should make camera changes directly to MapView's camera
    properties. Previously, changes could be applied to MapView.cameraView. (#217)
  • CameraAnimator objects are managed by developers and should be stored by
    developers to prevent the animations from falling out of scope.
  • LocationOptions.showUserLocation has been removed. Use
    LocationOptions.puckType instead, setting it to nil if you do not want to
    show the user location. LocationManager.showUserLocation has also been
    removed. (#203)
  • Make model layer internal and refactor for increased public API clarity
    (#194, #198)
    • ModelLayer and ModelSource are now internal
    • shouldTrackLocation flag has been removed from LocationConsumer because
      it was never used
    • PuckType.puck2D's associated value is now non-optional. It still has a
      default value corresponding to the previous behavior
    • LocationPuckManager is now internal
    • Renaming:
      • LocationPuck is now PuckType
      • LocationOptions.locationPuck is now LocationOptions.puckType
      • LocationIndicatorLayerViewModel is now Puck2DConfiguration
      • PuckModelLayerViewModel is now Puck3DConfiguration
  • Updates dependencies to MapboxCoreMaps 10.0.0-beta.17 and MapboxCommon 10.0.2.
    (#193)
    • [rendering] Query rendered features now work for fill-extrusions when
      terrain is enabled.
    • [rendering] Improved terrain rendering performance due to reduction of
      loaded tiles.
  • All layer paint/layout properties can be defined via expressions (#185)
  • Added RawRepresentable conformance to StyleURL. Removed enum cases for older
    style versions. (#168)

Features ✨ and improvements 🏁

  • Introduced the platform-driven Drag API for shifting the map’s camera. (#217)
  • Introduced CameraAnimator, a UIViewPropertyAnimator-based class for
    animating camera changes. These animators should be created using
    CameraManager.makeCameraAnimator methods. (#217)
  • Gesture-driven camera changes have been updated to use camera animators. (#217)
  • The AnimatorOwner enum has been added to track owners for individual
    animators. (#217)
  • CameraManager.fly(to:) is now built on camera animators. zoom, pitch,
    bearing, and centerCoordinate keyframes are supported. (#217)
  • The getter for LocationManager.locationOptions is now public. (#209)
  • Added function to get layer identifier for an annotation type. (#189)
  • Add PreferredFPS.custom() to add support for custom preferred frames per
    second values. (#157)

Bug fixes 🐞

  • Fixes an issue in which the puck was not reflecting updates to its
    configuration (#199)

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.0.0-beta.16/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-beta.15

05 Mar 00:33
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.16
  • Compatible version of MapboxCommon: v10.0.0-beta.12
  • Compatible version of Xcode: 12.2
  • Compatible version of MacOS: Big Sur

Changes

Breaking changes ⚠️

  • Updates MapboxCoreMaps to v10.0.0.beta.16 and MapboxCommon to v10.0.0-beta.12 (#152)

New Events API

  • The above breaking change introduces the new Map Events API which will:
    • Simplify the Map API and align it with other weakly typed interfaces (addStyleLayer, addStyleSource, etc.).
    • Minimize the effort for addition of new events.
    • Expose experimental events.
    • Suppress events that a developer hasn't subscribed to.
    • Automatically expose new events for Snapshotter (eliminating the need to modify MapObserver and MapSnapshotterObserver separately).
  • Events that have been removed:
    • mapResumedRendering
    • mapPausedRendering
    • mapLoadingStarted
    • renderMapStarted
    • renderMapFinished
    • cameraWillChange
    • cameraIsChanging
  • Events that have been renamed:
    • EventType.Map.mapLoaded -> EventType.Map.loaded
    • MapEvents.EventKind.cameraDidChange -> MapEvents.EventKind.cameraChanged

Direct download

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

Dynamic Bundle

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

Static Bundle

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

Mapbox Maps: v10.0.0-beta.14

25 Feb 16:10
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: 10.0.0-beta.15
  • Compatible version of MapboxCommon: 10.0.0-beta.11
  • Compatible version of Xcode: 12.2
  • Compatible version of MacOS: Big Sur

Breaking changes ⚠️

  • Updates Turf to v2.0.0-alpha.3 (#133)

Features ✨ and improvements 🏁

  • MapboxMaps now supports Apple Silicon. M1 Macs can now be used as development machines. (#48)
  • MapboxMaps is now built from source when consumed via Swift Package Manager or Cocoapods. (#125, #118)
  • Added SwiftUI example. (#78)
  • Allow a developer to synchronously update a layer with one API call -- no longer have to retrieve and re-add a layer. (#85)
  • MapboxMaps can now be built and tested using Swift Package Manager (#125)

Bug fixes 🐞

  • Prevent pitch and zoom from exceeding limits. Also updates default maximum pitch to 85 degrees. (#103)
  • Fixed an issue where quick zoom did not work at higher zoom levels. Also made the duration argument of the setCamera methods non-optional with default of 0. (#109)
  • GestureManager.delegate is now weak (#134)
  • Using heuristic to provide pan drift when the map is pitched (#120)

Direct download

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

Dynamic:

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

Static:

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

Mapbox Maps: v10.0.0-beta.13.1

17 Feb 22:57
0565cbc
Compare
Choose a tag to compare
Pre-release

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.14.2
  • Compatible version of MapboxCommon: v10.0.0-beta.9.2
  • Compatible version of Xcode: 12.2
  • Compatible version of MacOS: 10.15.7 Catalina

Changes

10.0.0-beta.13.1 - February 17. 2021

Breaking changes ⚠️

  • Update Mapbox Common for iOS to v10.0.0-beta.9.2 and MapboxCoreMaps to v10.0.0-beta.14.2. (#115)

Bug fixes 🐞

  • Fix issue where color components were in incorrect range (#112)

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/v10.0.0-beta.13.1/mapbox-maps-ios.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-beta.13

12 Feb 22:42
50d056d
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.14.1
  • Compatible version of MapboxCommon: v10.0.0-beta.9.1
  • Compatible version of Xcode: Xcode 12.2
  • Compatible version of MacOS: 10.15.7 Catalina

Breaking changes ⚠️

  • Rely on consumer provided view models directly to customize location pucks (#86)
  • Update Mapbox Common for iOS to v10.0.0-beta.9.1 and MapboxCoreMaps to v10.0.0-beta.14.1. (#89)
  • Update to Turf v2.0.0-alpha.2 (#93)

Features ✨ and improvements 🏁

  • Expose presentsWithTransaction property to better synchronize UIKit elements with the MapView. (#94)
  • Add MapEvents.styleFullyLoaded. (#90)

Bug fixes 🐞

  • Refactor Annotation "properties" (#70)
  • Fix Inconsistent Camera Heading (#68)
  • Fix issue where updates to ornament options were not honored (#84)
  • Dictionaries passed to expressions are now sorted by default (#81)
  • Fixed an issue where pan drift did not work correctly when bearing was non-zero. (#99)
  • Fix issue where toggling LocationOptions.showsUserLocation resulted in options not being updated (#101)
  • Pan drift for pitched maps will be disabled. A solution for smooth drifting is being worked on. (#100)
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.0.0-beta.13/mapbox-maps-ios.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-beta.12

26 Jan 20:19
Compare
Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-beta.13
  • Compatible version of MapboxCommon: v10.0.0-beta.8
  • Compatible version of Xcode: 12.2
  • Compatible version of MacOS: 10.15.7 Catalina

Changes

Announcement

V10 is the latest version of the Mapbox Maps SDK for iOS. v10 brings substantial performance improvements, new features like 3D terrain and a more powerful camera, modern technical foundations, and a better developer experience.

To get started with v10, please refer to our migration guide.

Known Issues

Annotations
  • Annotation selection may have a false positive if the selection of an annotation occurs on the edge of the display.
  • Point, line, and polygon colors cannot be customized.
  • Point annotations may not be rendered when PointAnnotation.properties is non-nil.
Camera
  • The camera can jump while pinching or panning.
  • UIViewPropertyAnimator and keyframe animations do not work; please use UIView.animate to selectively animate camera properties.
Ornaments
  • Unable to toggle scaleBar and compass visibility.
  • Ornaments do not reposition after a navigation bar is displayed.
Style
  • An NSException can occur when accessing symbol style layers that contain a value for textField using Style.getLayer().
3D Terrain
  • 3D Terrain is in an experimental state.
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.0.0-beta.12/mapbox-maps-ios.zip?access_token=<access-token>