maps-v1.4.0
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.
-
[default] Fix possible crash at RunLoop::wake() (#16255)
-
[android] Update toGeoJSON in android_conversion.hpp (#16243)
Before this chage,
toGeoJSON
method inandroid_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, nowtoGeoJSON
method can convert both string and Object to GeoJSON. -
[core] Fix
within
expression algorithm so thatfalse
value will be returned when point is on the boundary. Allow using different GeoJSON formats as arguments ofwithin
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 withline-center
placement. -
Fixed using of the
in
expression as a layer filter (#16272)The bug was caused by
mbgl::style::conversion::isExpression()
always returningfalse
for thein
expression.
🧩 Architectural changes
-
Changes to
MapSnapshotter
threading model (#16268)Snapshotter's threading model has been changed. Previously,
Map
andHeadlessFrontend
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 accessStyle
object, whileHeadlessFrontend
lives on a dedicatedSnapshotter
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)