Releases: mapbox/mapbox-maps-ios
v10.0.0
Dependencies and system requirements
- Requires MapboxCoreMaps v10.0.0
- Requires MapboxCommon v20.0.0
- Requires Swift Package Manager or CocoaPods
- Tested in Xcode 12.4 on macOS 10.15 Catalina
Changes
Style
- [breaking] Removes default parameter values in the
addImagefunction. (#695) - [breaking] Updated generic layer and source methods on
Styleto not rely on type inference. This makes it easier to use the methods correctly in a wider variety of contexts. (#694)layer(withId:)is nowlayer(withId:type:).updateLayer(withId:update:)is nowupdateLayer(withId:type:update:).source(withId:)is nowsource(withId:type:).
- [breaking] Updated untyped variants of layer and source methods on
Styleto no longer require a type parameter. This makes it easier to get a layer without knowing its type ahead of time. (#694)layer(withId:type:)is nowlayer(withId:).source(withId:type:)is nowsource(withId:).
- [breaking] Removed experimental designation from the following APIs
- [breaking]
layerProperty(for:property:)is nowlayerPropertyValue(for:property:)to avoid ambiguity. (#708) - [breaking]
updateGeoJSONSource(withId:geoJSON:)is no longer generic, and works with any TurfGeoJSONObject. (#715) - [breaking] Setting the
dataproperty on a GeoJSON source viasetSourceProperty(for:property:value:)orupdateGeoJSONSource(withId:geoJSON:)is now asynchronous and never returns an error. Errors will be reported asynchronously via aMapEvents.EventKind.mapLoadingErrorevent instead, which you can listen for using theMapboxMap.onNextandonEverymethods. (#732)
Gestures
- [breaking] The methods of
GestureManagerDelegatehave been updated to provide more visibility into the gesture lifecycle. (#697)gestureBegan(for:)is nowgestureManager(_:didBegin:).gestureManager(_:didEnd:willAnimate:)has been added.gestureManager(_:didEndAnimatingFor:)has been added.
- [breaking] Annotation managers now share a single tap gesture recognizer. This fixes a bug that where annotation managers could block each others' touch events. (#709)
GestureManager.singleTapGestureRecognizerhas been added.*AnnotationManager.tapGestureRecognizerhas been removed.
- Any touch event in the map now immediately disables camera animation. Temporarily disable user interaction on the
MapViewto disable this behavior as needed. (#712) - The double tap, quick zoom, and double touch gestures now use the gesture's location in the view to anchor camera changes. Previously, they used the camera's center coordinate. (#722)
Annotations
- [breaking] The default image feature for point annotations has been removed. (#707)
PointAnnotation.Imageis now astruct(was previously anenum).PointAnnotation.Image.defaulthas been removed.PointAnnotation.Image.customhas been replaced withPointAnnotation.Image.init(image:name:).
- [breaking] Annotation managers are now kept alive by the
AnnotationOrchestrator(MapView.annotations) until they are explicitly destroyed by callingmapView.annotations.removeAnnotationManager(withId:)or are implicitly destroyed by creating a second annotation manager with the same ID. (#725) - [breaking] The
AnnotationManagerprotocol now conforms toAnyObject. (#725) AnnotationOrchestrator.annotationManagersByIdhas been added. This dictionary contains all annotation managers that have not been removed. (#725)
Turf & GeoJSON
- [breaking]
MapboxCommon.Geometryextension methods are now internal. (#683) - [breaking]
TileRegionLoadOptions.initnow takes aGeometryinstead of aMapboxCommon.Geometry. (#711) - [breaking]
QueriedFeature.featureis no longer optional. (#737) - Adds
TileRegionLoadOptions.geometrythat uses TurfGeometry. (#711) - Adds
FeatureExtensionValue.init(value:features:)that works with Turf. (#717) - Adds
FeatureExtensionValue.featuresthat uses TurfFeature. (#717) - APIs that accept Turf
Featurenow allowFeature.identifierand.propertiesto benil. (#717) - APIs that accept Turf
Featurenow ignoreFeature.propertiesinstead of crashing if it cannot be converted to[String: NSObject]. (#717) - Adds the
ExpressionArgument.geoJSONObject(_:)case, which allows you to include aTurf.GeoJSONObjectinstance in an expression with theExpression.Operator.distanceorExpression.Operator.withinoperator. (#730)
Camera
- [breaking] Removed redundant
CameraAnimationsManager.options. (#712)- Use
MapboxMap.cameraBoundsandMapboxMap.setCameraBounds(with:)instead. MapboxMap.setCameraBounds(for:)has been renamed tosetCameraBounds(with:)
- Use
- [breaking] Refines
OfflineRegionGeometryDefinitionto use Turf types. (#706)geometryis now of typeGeometryinstead ofMapboxCommon.Geometry.- A
Geometry-based init method has been added.
BasicCameraAnimatorno longer updates the camera a final time after being stopped or canceled prior to running to completion. (#712)BasicCameraAnimator.isReversedis now settable. (#712)
Misc
- [breaking] Core and Common APIs that accept user-defined implementations of protocols now hold strong references to the provided objects. (#732)
- Please audit your usage of the following protocols and make any required changes to avoid memory leaks:
CustomLayerHost,ElevationData,MapClient,MBMMetalViewProvider,Observer,OfflineRegionObserver,HttpServiceInterceptorInterface,HttpServiceInterface,LogWriterBackend,OfflineSwitchObserver,ReachabilityInterface,TileStoreObserver.
- Please audit your usage of the following protocols and make any required changes to avoid memory leaks:
- [breaking]
PreferredFPShas been removed.MapView.preferredFramesPerSecondnow of typeInt, rather thanPreferredFPS. (#735) - [breaking]
TypeConversionErrorhas a new caseunsuccessfulConversion. (#737) MapboxCommon.HTTPServiceFactory.reset()has been added to release the HTTP service implementation. (#732)- Adds
MapView.preferredFrameRateRangefor devices using iOS 15.0 and up. (#735) - Adds
TileStore.subscribe(_:)which can be used to observe aTileStore's activity. The API design deviates from Android's add/remove observer API so that the developer-providedTileStoreObservercan be wrapped into aMapboxCommon_Private.TileStoreObserverwithout needing to use global state or something like Objective-C associated objects to look up which wrapper goes with with developer-provided observer when calling__removeObserver. (#737) - Adds
TileStoreObserverprotocol. (#737) - [bugfix] Fix rendering artifacts for a model layer when
model-opacityproperty is used. (#732) - [bugfix] Improve rendering performance by avoiding unnecessary re-layout for cached tiles. (#732)
- [bugfix] Fix telemetry opt-out through attribution dialog. (#743)
Dependencies
- Updates MapboxCoreMaps to v10.0.0, MapboxCommon to v20.0.0. (#732)
- Updates Turf to v2.x. (#741)
- Updates MapboxMobileEvents to v1.0.5. (#724)
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/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.9
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.9.1
- Compatible version of MapboxCommon: v19.0.0
- Compatible version of Xcode: 12.5
- Compatible version of MacOS: Catalina
Changes
Breaking changes ⚠️
BasicCameraAnimatornow keeps animators alive without the user storing the animator. (#646)- Experimental style APIs are now marked with
@_spi(Experimental)and the previously used underscore prefixes have been removed. In order to access these methods, use@_spi(Experimental)to annotate the import statement for MapboxMaps. (#680) RenderedQueryOptions.filteris now of typeExpressioninstead ofAny(#689)OfflineRegionGeometryDefinition.geometryis now of typeTurf.Geometryinstead ofMapboxCommon.Geometry(#689)- The
HTTPResponseinit methods that takeMapboxCommon.Expectedinstead ofResultare now correctly marked as refined for Swift. (#689) - The
DownloadStatusinit methods that takeMapboxCommon.Expectedinstead ofResultandNSNumber?instead ofUInt64?are not correctly marked as refined for Swift. (#689) GestureOptions.hapticFeedbackEnabledhas been removed. (#663)GestureManager.decelarationRatehas been removed andGestureOptions.decelerationRateis the single source of truth. (#662)GestureManagerno longer conforms toNSObjectand is not aUIGestureRecognizerDelegate. (#669)TapGestureHandler.initwas previously public by mistake and is now internal. (#677)- The behavior of
GestureManager.optionshas been updated to better reflect theisEnabledstate of the associated gesture recognizers. (#677) - The gesture recognizer properties of
GestureManagerare no longerOptional. (#677) GestureTypehas been redesigned so that its cases have a 1-1 relationship with the built-in gestures. (#677)GestureManager.rotationGestureRecognizerhas been removed. Rotation is now handled by.pinchGestureRecognizerin addition to its preexisting handling of panning and zooming. (#696)GestureManager.doubleTapToZoomOutGestureRecognizerhas been replaced with.doubleTouchToZoomOutGestureRecognizer. (#696)PanScrollingModehas been renamed toPanMode. (#696)GestureOptions.zoomEnabledhas been replaced by.doubleTapToZoomInEnabled,.doubleTouchToZoomOutEnabled, and.quickZoomEnabled. (#696)GestureOptions.rotateEnabledhas been removed. (#696)GestureOptions.scrollEnabledhas been renamed to.panEnabled. (#696)GestureOptions.scrollingModehas been renamed to.panMode. (#696)GestureOptions.decelerationRatehas been renamed to.panDecelerationFactor. (#696)GestureType.doubleTapToZoomOuthas been replaced with.doubleTouchToZoomOut. (#696)GestureType.rotatehas been removed. (#696)GestureTypecases have been reordered for consistency withGestureOptionsandGestureManager. (#696)
Features ✨ and improvements 🏁
- Allow users to set the map's
MapDebugOptions. (#648) - Implement 'promoteId' feature for geojson and vector sources. The feature allows to promote feature's property to a feature id, so that promoted id can be used with FeatureState API. (#660)
- Tiled 3D model layer and source (#689)
- Enable instant transitions for data driven symbol layer properties (#689)
- Implement face culling for Metal (#689)
HTTPServiceInterface.getInstance()is now publicly available. (#689)CameraState's fields are nowvars instead oflets for testing purposes, and a public, memberwise initializer has been added. (#677)PanScrollingModenow conforms toCaseIterable. (#677)GestureTypenow conforms toCaseIterable. (#677)- Pan deceleration has been reimplemented to produce a more natural deceleration effect. (#692)
- Expose new API to allow users to create a
UIImageout of the last rendered MapView state. (#693)
Bug fixes 🐞
- Fixes animations that are started within an UIKit animation context. (#684)
- Fix transition between layers with all-constant properties (#689)
- Fix rendering artifact for a line layer, when its line-gradient property is set at runtime. (#689)
- Don't draw SDF images in text-field and issue warning for it (#689)
- Fix incorrect return from
StyleManager#getStyleLayerPropertyDefaultValuefor 'text-field'. Now the default value is set to["format", "" , {}](#689) - GestureManager no longer sets itself as the delegate of all gestures in MapView when its options change. (#677)
- Fixes an issue where tapping the compass could fail to set the bearing to 0 if there was already an animation running. Tapping the compass now cancels any existing animations. (#696)
- Fixes issues with the pinch gesture when removing and re-adding one of the two required touches. (#696)
- Fixes an issue where a pan gesture would fail if it interrupted the deceleration from a previous pan gesture. (#696)
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-rc.9/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.8
Dependency requirements:
- Compatible version of MapboxCoreMaps: 10.0.0-rc.8
- Compatible version of MapboxCommon: 18.0.0
- Compatible version of Xcode: 12.5
- Compatible version of MacOS: 11.15
Changes
Breaking changes ⚠️
QueriedFeature.featureis now of typeTurf.Feature?instead ofMapboxCommon.Feature. (#628)- Enables error notification in offline mode if the required resource is missing in cache (before map did not emit any notification in this case) (#628)
- Suppresses error notifications on missing volatile tiles in offline mode (#628)
- Adapt setBounds to gl-js behavior: constraining of coordinates and zoom level is now stricter to prevent out of bounds map area to be visible in the viewport (#628)
- Add HTTP interceptor API - HttpServiceInterface has a new method
setInterceptorthat must be implemented (#628) Geometrynow refers toTurf.Geometryinstead ofMapboxCommon.Geometry. (#622)Featurenow refers toTurf.Featureinstead ofMapboxCommon.Feature. (#642)- Renamed
ColorRepresentabletoStyleColor(#650) - Removed the argument label from
StyleColor'sUIColorinitializer (#650) - Renamed
ColorRepresentable.rgbaDescriptiontoStyleColor.rgbaString. (#650) - Changed
StyleColor'sEncodableimplementation to always encode an rgba color string instead of encoding an rgba expression (#650) - Updated the extension on
UIColorthat addsExpressionArgumentConvertibleto return an rgba color string instead of an rgba expression. (#650) - Annotation managers now sync with their backing source and layer only once per display link. Use
syncSourceAndLayerIfNeeded()to force the sync to happen earlier. (#650, #621) - The
layerTypeargument toStyle._layerPropertyDefaultValue(for:property:)is now of typeLayerTypeinstead ofString(#650) Expressiondecoding will now fail if the operator is missing (#650)PointAnnotationManager.textVariableAnchoris now of type[TextAnchor]?instead of[String]?(#650)PointAnnotationManager.textWritingModeis now of type[TextWritingMode]?instead of[String]?(#650)
Features ✨ and improvements 🏁
- It is no longer necessary to
import Turf. (#622) - Enable instant transitions for data driven paint layer properties (#628)
- Offload networking tasks at the init phase (#631)
- 3D pucks will now be rendered over other 3D content and occluded by terrain (#641)
- Added a public, failable, component-wise initializer to
StyleColor(#650) - Updated
StyleColor'sDecodablesupport to be able to handle rgba color strings as well as rgba expressions (#650) - Made generated enums conform to
CaseIterable(#650) - Location puck can now hide the accuracy ring. The default value is to hide the accuracy ring. In order to enable the ring, set the
showAccuracyRingproperty inPuck2DConfigurationtotrue. #629 - Annotation interaction delegates are only called when at least one annotation is detected to have been tapped (638)
Bug fixes 🐞
- Fix volatile tiles disappearing on "not modified" response (#628)
- Fix crash in MapboxMap.clearData() (#628)
- Trigger map redraw when feature state changes (#628)
- Do not start background task if telemetry collection is disabled (#631)
- Fix KVC decoding for iOS 15 (#631)
- The GeoJSON source backing an
AnnotationMnageris now removed correctly when anAnnotationManageris deallocated (#633) - Updated annotations to use
rgbaStringandinit(rgbaString:)when serializing and deserializingStyleColors (#650) - Annotation managers now properly restore the default values of any annotation or common style properties that are reset to nil, with the exception of
text-fieldandline-gradientfor which there are currently issues to resolve between mapbox-maps-ios and mapbox-core-maps-ios. (#650) - Fixed Expression decoding when second array element could be an operator (#650)
- Fixed an issue where layer persistence was not maintained after calling
Style._moveLayer. (#643) - Fix issue where annotations were not being returned to annotation interaction delegates (638)
Breaking changes ⚠️
TileStore.tileRegionGeometry(forId: String, completion: @escaping (Result<MapboxCommon.Geometry, Error>) -> Void)has been updated toTileStore.tileRegionGeometry(forId: String, completion: @escaping (Result<Geometry, Error>) -> Void). (#661)
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-rc.8/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.7
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.7.2
- Compatible version of MapboxCommon: v17.1.0
- Compatible version of Xcode: 12.4+
- Compatible version of MacOS: Big Sur
Changes
Features ✨ and improvements 🏁
- Add support for
FeatureStatein GeoJSON sources. (#611)setFeatureState(sourceId:sourceLayerId:featureId:state:)is used to associate astateMapfor a particular featuregetFeatureState(sourceId:sourceLayerId:featureId:callback:)is used to retrieve a previously storedstateMapfor a featureremoveFeatureState(sourceId:sourceLayerId:featureId:stateKey:)is used to remove a previously storedstateMapfor a feature
- Added
GeoJSONSource.generateId(#593) - Enable the combined usage of line-dasharray with line-gradient (#588)
- Fixed rendering issue for round line-join in line gradients (#594)
Breaking changes ⚠️
- Removed GeoJSONManager. Please use Turf directly instead to serialize and deserialize GeoJSON. (#603)
- Add specific geometry types to annotations. (#612)
- Replace syncAnnotations with property setter. (#614)
Bug fixes 🐞
- Update all Annotation files to use
get/setinstead ofdidSet. This fixes an issue where properties were not being set atinit. (#590) GeoJSONSource.clusterPropertiesis now correctly modeled per the style spec. (#597)- Fixes a crash caused by
MapboxMap.clearData(). (#609) - Added missing attribution and links to info alert controller. (#591)
- Fixed issue that caused incorrect animation of negative padding values (#602)
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-rc.7/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.6
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.6
- Compatible version of MapboxCommon: v16.2.0
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
Features ✨ and improvements 🏁
- Added support for building with Xcode 13b3. (#564)
- Added attribution to snapshots generated by
Snapshotter. (567) - Added a convenience initializer for
DownloadStatus(#454)
Bug fixes 🐞
- Fixed an issue where panning was not enabled while zooming. (#474)
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-rc.6/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.5
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.5
- Compatible version of MapboxCommon: 16.0.0
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
Bug fixes 🐞
- Fixed an issue where
MapViewpositioning wasn't correct when used in containers such as UIStackView (#533)
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-rc.5/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.4
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.4
- Compatible version of MapboxCommon: v15.0.0
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
Features ✨ and improvements 🏁
- Support
text-writing-modeproperty for line symbol-placement text labels. (#522)
Note: This change will bring following changes for CJK text block:- For vertical CJK text, all the characters including Latin and Numbers will be vertically placed now. Previously, Latin and Numbers are horizontally placed.
- For horizontal CJK text, it may have a slight horizontal shift due to the anchor shift.
- Expanded
localizeLabels(into: Locale)to accept a[String]. This array will contain a list of layer ids that you will want to localize. (#512)
Breaking changes ⚠️
TileRegionErrorhas a new casetileCountExceeded(String). (#522)- FlyToCameraAnimator.state will now be
.inactiveafter it completes or is stopped. This change makes its behavior consistent with the behavior ofBasicCameraAnimator. (#519) - Completion blocks added to
BasicCameraAnimatorwill no longer be invoked as a side-effect of deinitialization. (#519) - Removed the
SupportedLanguageenum. You may now useLocale(identifier: String)as intended. (#512) - Removed the
MapView.localeproperty. Now, in order to localize values, you must callmapView.mapboxMap.style.localizeLabels(into: Locale). (#512)
Bug fixes 🐞
- Clean up network listener after http file source gets out of scope. (#522)
- Fix
line-centeranchor calculation when the anchor is very near to the line geometry point. (#522) - Fix threading issues in HTTP file source. (#522)
- Fixed an issue that could cause flickering during ease to and basic animations (#519)
- Fixed an issue that could result in ease to and basic animations never reaching their final values (#519)
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-rc.4/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.3
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.3
- Compatible version of MapboxCommon: v14.2.0
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
The Mapbox Maps SDK for iOS has moved to release candidate status and is now ready for production use.
Features ✨ and improvements 🏁
- Introduced static method
MapboxMap.clearData(for:completion:)and instance methodsMapboxMap.clearData(completion:)andSnapshotter.clearData(completion:). These new methods allow clearing temporary map data. (#496) MapLoadingErrorevents now include source and tile information where appropriate. These new fields allow developers to understand what source or tile has failed to load and the reason for the failure. (#496)
Bug fixes 🐞
- Fixed a runtime crash that occurred only when the SDK was included as an XCFramework (direct download). (#497)
- Fixed an issue where animators created by fly to and ease to were not released until the next fly to or ease to began. (#505)
- Fixed an issue where a complete animator would trigger redrawing unnecessarily. (#505)
- Fix raster/v1 terrain tiles fetch failures caused by appending pixel ratio to the URLs when tile size is equal to 512 (#496)
- Improve persistent layer pinning by keeping information about initial LayerPosition (#496)
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-rc.3/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.2
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.2
- Compatible version of MapboxCommon: v14.0.1
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
The Mapbox Maps SDK for iOS has moved to release candidate status and is now ready for production use.
Features ✨ and improvements 🏁
- Introduced experimental
Style._addPersistentLayer(with:layerPosition:),Style._isPersistentLayer(id:),Style._addPersistentCustomLayer(withId:layerHost:layerPosition:)APIs, so that the tagged layer and its associated resources remain when a style is reloaded. This improves performance of annotations during a style change. Experimental APIs should be considered liable to change in any SEMVER version. (#471, #473)
- Annotations now will persist across style changes by default. (#475)
- Adds localization support for v10 Maps SDK. This can be used by setting the
mapView.locale. Use theSupportedLanguagesenum, which lists currently supportedLocale. (#480) - Fixed Tileset descriptor bug: Completion handler is called even if the
OfflineManagerinstance goes out of scope. - Fixed text rendering when both 'text-rotate' and 'text-offset' are set.
Breaking changes ⚠️
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-rc.2/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-rc.1
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-rc.1
- Compatible version of MapboxCommon: v14.0.1
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
The Mapbox Maps SDK for iOS has moved to release candidate status and is now ready for production use.
Breaking changes ⚠️
- Converted
MapSnapshotOptionsto a struct. (#430) - Removed
CacheManager. In the following releases, an API to control temporary map data may be provided. (#440) - Changed
ResourceOptions.cachePathURLtodataPathURLand removedcacheSize. (#440) - Annotations don't have a
typeproperty since they can be directly compared to a type. (451) - Internalize extensions of Core and Common types. (#449)
Features ✨ and improvements 🏁
- Allows a developer to choose whether the puck is oriented based on
headingorcoursevia a newpuckBearingSourceoption inmapView.location.options. By default, the puck will be oriented usingheading. (#428) - All stock gesture recognizers are now public on the
GestureManager. (450) - The tap gesture recognizer controlled by any given annotation manager is now public. (451)
Bug fixes 🐞
- Fixed a bug where animations were not always honored. (#443)
- Fixed an issue that vertical text was not positioned correctly if the
text-offsetproperty was used. (#440) - Emit
.mapLoadingErrorwhen an empty token is provided for accessing Mapbox data sources. Before the fix, the application may crash if an empty token was provided and map tries to load data from Mapbox data source. (#440) - Do not emit
.mapLoadingErrorwhen an empty URL is set to GeoJSON source. (#440)
Dependencies
- Updated MapboxCoreMaps, MapboxCommon and Turf dependencies. (#440)
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-rc.1/MapboxMaps.zip?access_token=<access-token>