Skip to content
This repository has been archived by the owner on Jun 21, 2023. It is now read-only.

macos-v0.15.0

Compare
Choose a tag to compare
@1ec5 1ec5 released this 08 Apr 06:31
· 85 commits to master since this release

This version of the Mapbox Maps SDK for macOS corresponds to version 5.8.0 of the Mapbox Maps SDK for iOS. Changes since macos-v0.14.0:

Styles and rendering

  • Added the -[MGLMapViewDelegate mapView:shouldRemoveStyleImage:] method for optimizing style image caching. (mapbox/mapbox-gl-native#14769)
  • Added the image expression function for converting an image name into a style image. Use this function in expressions in style JSON or with the MGL_FUNCTION() syntax in an NSExpression format string. Image expressions are compatible with the mgl_attributed: expression function and MGLAttributedExpression classes for embedding icons inline in text labels. (mapbox/mapbox-gl-native#15877, mapbox/mapbox-gl-native#15937)
  • The IN and CONTAINS predicate operators can now test whether a string is a substring of another string or whether the evaluated feature (SELF) lies within a given MGLShape or MGLFeature. (#183, #184)
  • Added the MGLSymbolStyleLayer.textWritingModes layout property. This property can be set to MGLTextWritingModeHorizontal or MGLTextWritingModeVertical. (mapbox/mapbox-gl-native#14932)
  • Added the MGLLineStyleLayer.lineSortKey and MGLFillStyleLayer.fillSortKey properties. (#179)
  • The MGLIdeographicFontFamilyName Info.plist key now also accepts an array of font family names, to customize font fallback behavior. It can also be set to a Boolean value of NO to force the SDK to typeset CJK characters in a remote font specified by MGLSymbolStyleLayer.textFontNames. (mapbox/mapbox-gl-native#14862)
  • The MGLSymbolStyleLayer.iconTextFit property now respects the cap insets of any nine-part stretchable image passed into the -[MGLStyle setImage:forName:] method. You can define the stretchable area in Xcode’s asset catalog or by setting the NSImage.capInsets property. (#182)
  • The -[MGLStyle localizeLabelsIntoLocale:] and -[NSExpression mgl_expressionLocalizedIntoLocale:] methods can now localize text into Traditional Chinese and Vietnamese. (#173)
  • Fixed crashes triggered when MGLSource and MGLStyleLayer objects are accessed after having been invalidated after a style change. (mapbox/mapbox-gl-native#15539)
  • Fixed an issue where fill extrusion layers would be incorrectly rendered above other layers. (mapbox/mapbox-gl-native#15065)
  • Fixed rendering and collision detection issues with using MGLSymbolStyleLayer.textVariableAnchor and MGLSymbolStyleLayer.iconTextFit properties on the same layer. (mapbox/mapbox-gl-native#15367)
  • Fixed symbol overlap when zooming out quickly. (mapbox/mapbox-gl-native#15416)
  • Fixed an issue where non-template images would draw as template images when used in the same style layer. (mapbox/mapbox-gl-native#15456)
  • Fixed an issue where the collision boxes for symbols would not be updated when MGLSymbolStyleLayer.textTranslation or MGLSymbolStyleLayer.iconTranslation were used. (mapbox/mapbox-gl-native#15467)
  • Fixed an issue that caused MGLTileSourceOptionMaximumZoomLevel to be ignored when setting MGLTileSource.configurationURL. (mapbox/mapbox-gl-native#15581)
  • Fixed an issue where MGLSymbolStyleLayer.symbolSortKey could sort text and icons incorrectly. (mapbox/mapbox-gl-native#16023)
  • Fixed an issue where style layers backed by a shape source could flicker when transitioning between styles. (mapbox/mapbox-gl-native#15907, mapbox/mapbox-gl-native#15941)
  • Improved the performance of loading a style that has many style images. (mapbox/mapbox-gl-native#16187)
  • Updated “map ID” to the more accurate term “tileset ID” in documentation; updated “style's Map ID” to the more accurate term “style URL”. (mapbox/mapbox-gl-native#15116)

Camera

  • Setting MGLMapView.contentInset now moves the map’s focal point to the center of the content frame after insetting. (mapbox/mapbox-gl-native#14664)
  • The -[MGLMapView setCamera:withDuration:animationTimingFunction:edgePadding:completionHandler:] method now adds the current value of the MGLMapView.contentInsets property to the edgePadding parameter. (mapbox/mapbox-gl-native#14813)
  • Added variants of multiple animated MGLMapView methods that accept completion handlers (mapbox/mapbox-gl-native#14381):
    • -[MGLMapView setVisibleCoordinateBounds:edgePadding:animated:completionHandler:]
    • -[MGLMapView setContentInsets:animated:completionHandler:]
    • -[MGLMapView showAnnotations:edgePadding:animated:completionHandler:]
  • Added the MGLMapView.minimumPitch and MGLMapView.maximumPitch properties to further limit how much the user or your code can tilt the map. (#208)
  • Fixed an issue where it was possible to set the map’s content insets then tilt the map enough to see the horizon, causing performance issues. (mapbox/mapbox-gl-native#15195)
  • Fixed an issue where animated camera transitions zoomed in or out too dramatically. (mapbox/mapbox-gl-native#15281)
  • Improved performance when continuously animating a tilted map. (mapbox/mapbox-gl-native#16287)

Feature querying

  • Fixed an issue where -[MGLMapView visibleFeaturesInRect:] and -[MGLShapeSource featuresMatchingPredicate:] omitted some features from the return value. (mapbox/mapbox-gl-native#14884)
  • Fixed an issue where -[MGLMapView visibleFeaturesInRect:] and -[MGLShapeSource featuresMatchingPredicate:] could return incorrect coordinates at zoom levels 20 and higher. (mapbox/mapbox-gl-native#15560)
  • Improved feature querying performance. (mapbox/mapbox-gl-native#14930)

Snapshots

  • Added an -[MGLMapSnapshotter startWithOverlayHandler:completionHandler:] method to provide the snapshot's current CGContext in order to perform custom drawing on MGLMapSnapshot objects. (mapbox/mapbox-gl-native#15530)
  • Added the MGLMapSnapshotter.delegate property and MGLMapSnapshotterDelegate protocol for customizing the style before taking a snapshot. (#235)
  • You no longer need to explicitly capture the MGLMapSnapshotter object in the completion handler that you specify in -[MGLMapSnapshotter startWithCompletionHandler:]. Even if you declare the snapshotter locally without holding a strong reference to it, the snapshotter is only deallocated after the completion handler finishes, and the completion handler generally receives a valid snapshot. (#210)
  • The -[MGLMapSnapshotter cancel] method no longer calls the completion handler passed into -[MGLMapSnapshotter startWithCompletionHandler:]. (#210)
  • Fixed an issue where the MGLMapSnapshotter.loading property always returned NO, even while loading a snapshot. (#210)

Networking and storage

  • Ideographic glyphs from Chinese, Japanese, and Korean are no longer downloaded by default as part of offline packs; they are instead rendered on-device, saving bandwidth and storage while improving performance. (mapbox/mapbox-gl-native#14176)
  • Downloaded offline packs no longer reduce the storage space available for ambient caching of tiles and other resources. (mapbox/mapbox-gl-native#15622)
  • Added the MGLMapView.prefetchesTiles property to configure lower-resolution tile prefetching behavior. (mapbox/mapbox-gl-native#14816)
  • Added the -[MGLOfflineStorage preloadData:forURL:modificationDate:expirationDate:eTag:mustRevalidate:completionHandler:] method for determining when the data is ready to retrieve from the cache. (#188)
  • Fixed a crash when -[MGLOfflinePack invalidate] is called on different threads. (mapbox/mapbox-gl-native#15582)
  • Fixed issues where an offline pack would stop downloading before completion. (mapbox/mapbox-gl-native#16230, mapbox/mapbox-gl-native#16240)
  • When an offline pack encounters an HTTP 404 error, the MGLOfflinePackUserInfoKeyError user info key of the MGLOfflinePackErrorNotification now indicates the resource that could not be downloaded. (mapbox/mapbox-gl-native#16240)
  • Expired resources are now fetched at a lower priority than new resources. (mapbox/mapbox-gl-native#15950)

Other changes

  • Fixed a memory leak when zooming with any options enabled in the MGLMapView.debugMask property. (mapbox/mapbox-gl-native#15395)
  • MGLLoggingLevel has been updated to better match core log levels. You can now use MGLLoggingConfiguration.loggingLevel to filter logs from core. (mapbox/mapbox-gl-native#15120)

Documentation is available online or as part of the download.