Mapbox GL v1.4.0 Release Notes

Release Date: 2020-03-13 // about 4 years ago
  • maps-v1.4.0

    ๐Ÿฑ โœจ New features

    [android] Add jni binding for line-sort-key and fill-sort-key (#16256)

    With this change, android sdk will be able to get sort key for LineLayer and FillLayer.

    ๐Ÿ’… Styleable MapSnapshotter (#16268)

    ๐Ÿ†• New feature provides means of modifying style of a MapSnapshotter. The new API enables several use-cases, such as: adding route overlays, removing extra information (layers) from a base style, adding custom images that are missing from a style.

    [core] Improve stability of symbol placement when the map is tilted (#16287)

    ๐ŸŽ These changes improve performance and bring more stability to the symbol placement for the tilted view, which is mainly used for navigation scenarios.

    ๐Ÿฑ ๐Ÿž Bug fixes

    [core] Fix iterators in addRegularDash() (#16249)

    ๐Ÿ›  Fixes possible crashes when using styles with line patterns.

    0๏ธโƒฃ [default] Fix possible crash at RunLoop::wake() (#16255)

    โšก๏ธ [android] Update toGeoJSON in android_conversion.hpp (#16243)

    Before this chage, toGeoJSON method in android_conversion.hpp could not convert an Object (Map in android) to GeoJSON object.

    But within expression needs to accept an Object and then convert it to the GeoJSON object, now toGeoJSON method can convert both string and Object to GeoJSON.

    [core] Fix within expression algorithm so that false value will be returned when point is on the boundary. Allow using different GeoJSON formats as arguments of within expression.(#16232)

    A valid GeoJSON argument should contain one of the following types: "Feature", "FeatureCollection","Polygon" or "MultiPolygon".

    [core] [tile mode] placement algorithm must consider icons bounding boxes (#16277)

    Tile mode placement algorithm now checks if bounding boxes for both label text and icon are intersecting the edges of the tiles.

    Before, it checked only text bounding boxes and thus label icons might have got cut off.

    [core] Calculate size of an ambient cache without offline region's resources (#15622)

    Resources that belong to an offline region, should not contribute to the amount of space available in the ambient cache.

    [core][tile mode] Fix assertion at line-center placement handling (#16293)

    The Symbol Intersects Tile Edges placement algorithm should not be applied to the symbols with line-center placement.

    ๐Ÿ›  Fixed using of the in expression as a layer filter (#16272)

    ๐Ÿ’… The bug was caused by mbgl::style::conversion::isExpression() always returning false for the in expression.

    ๐Ÿงฉ Architectural changes

    ๐Ÿ”„ Changes to MapSnapshotter threading model (#16268)

    ๐Ÿ’… Snapshotter's threading model has been changed. Previously, Map and HeadlessFrontend that is responsible for rendering snapshot, were running on a dedicated thread. After #16268, Map object lives on client thread, so that the client can access Style object, while HeadlessFrontend lives on a dedicated Snapshotter thread.

    ๐Ÿฑ โš ๏ธ Breaking changes
    • Signature of a MapSnapshotter's constructor has been changed
    • Signature for a MapSnapshotter::snapshot method has been changed
    • Size of an offline regions do not affect ambient cache size (#15622)
    ๐Ÿฑ ๐Ÿ“Œ Known issues
    • When feature is exactly on the geometry boundary, within expression returns inconsistent values for different zoom levels (#16301)