Skip to content

Releases: mapbox/mapbox-maps-android

android-v10.0.0-rc.4

14 Jul 07:00
5c8188b
Compare
Choose a tag to compare
android-v10.0.0-rc.4 Pre-release
Pre-release

10.0.0-rc.4 July 14, 2021

The Mapbox Maps SDK for Android has moved to release candidate status and is now ready for production use.

Features ✨ and improvements 🏁

  • Add new param to allow users localize selected layers. (#461)
  • Add API to control logging for animation plugin and disable debug logs by default. (#474)
  • Introduce option to use continuous rendering for scale bar. Continuous render mode will fix gfxinfo profiling. (#458)
  • Add shortest bearing path option for animators. (#473)
  • Add modelTranslation support for LocationPuck3D (#493)
  • Add default parameters to coordinate conversion functions of MapCameraManagerDelegate#cameraForCoordinates, MapCameraManagerDelegate#cameraForCoordinateBounds and MapCameraManagerDelegate#cameraForGeometry. This overloads the functions to have a more simple API surface for developers to hook into. (#491)
  • Support text-writing-mode property for line symbol-placement text labels (#1766)
    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.
  • Session SKU generation is now available
  • Add getSKUTokenIfValid to get a SKU token for a SKU identifier if it exists and is not expired, return empty string if not.
  • Allow filtering of log messages by categories.
  • Expose isFiltered for checking logging category settings

Bug fixes 🐞

  • Fix flyTo crash when using single-pixel paddings. (#478)
  • Fixed regression in map gestures on devices with Android 6 and lower. (#484)
  • Fix overwriting sync geojson data with getSourceAs by async. (#482)
  • Clean up network listener after http file source gets out of scope
  • Fix line-center anchor calculation when the anchor is very near to the line geometry point
  • Fix crash when a Feature State API is used with dedicated rendering thread
  • Fix threading issues in HTTP file source
  • Fix volatile tilesets handling

Dependencies

  • Update gl-native to v10.0.0-rc.5 and common to v16.0.0. (#487)

android-v10.0.0-rc.3

30 Jun 14:17
c4eb628
Compare
Choose a tag to compare
android-v10.0.0-rc.3 Pre-release
Pre-release

10.0.0-rc.3 June 30, 2021

The Mapbox Maps SDK for Android has moved to release candidate status and is now ready for production use.

Breaking changes ⚠️

  • Perform annotation click synchronously and change AnnotationManagerImpl#queryMapForFeatures function to be synchronous. (#455)

API change:

// async 
fun queryMapForFeatures(screenCoordinate: ScreenCoordinate, callback: QueryAnnotationCallback<T>)

               ||
               \/
// sync
fun queryMapForFeatures(screenCoordinate: ScreenCoordinate): T?

Features ✨ and improvements 🏁

  • Introduce static MapboxMap.clearData(resourceOptions: ResourceOptions, callback: AsyncOperationResultCallback) API and MapboxMap#clearData(callback: AsyncOperationResultCallback), Snapshotter#clearData(callback: AsyncOperationResultCallback) APIs. (#442)
  • Optimise the Style#getLayer and Style#getSource APIs' performance. (#449)
  • MapEvents#MAP_LOADING_ERROR events now include source and tile information where appropriate. New fields would allow developers to understand what source or tile has failed to load and the reason for a failure. (#442)

Bug fixes 🐞

  • Fix dropping annotation source updates if those were emitted rapidly without handler. (#441)
  • Fix raster/v1 terrain tiles fetch failures caused by appending pixel ratio to the URLs when tile size is equal to 512. (#442)
  • Fixed an issue that the LayerPosition is not persisted across the style change, when using persistent layer based annotation plugin and location component plugin. (#442)
  • Disable MapboxTelemetryInitProvider if the telemetry is disabled via app's manifest reducing startup time. (#457)

Dependencies

  • Bump gl-native to v10.0.0-rc.3, common to v14.2.0. (#442)
  • Bump telemetry to 8.1.0. (#457)

android-v10.0.0-rc.2

23 Jun 14:41
6b283aa
Compare
Choose a tag to compare
android-v10.0.0-rc.2 Pre-release
Pre-release

10.0.0-rc.2 June 23, 2021

The Mapbox Maps SDK for Android has moved to release candidate status and is now ready for production use.

Features ✨ and improvements 🏁

  • Introduce experimental Style#addPersistentLayer, Layer#isPersistent, Style#addPersistentStyleLayer, Style#addPersistentStyleCustomLayer and Style#isStyleLayerPersistent APIs, so that the tagged layer and its associated resources would remain when a style is reloaded. This improves performance of Annotation and Location Component Plugin during the style change. (#368, #422)
  • Add Localization API to apply languages to the style by provided locale. (#379)
  • Reduce unnecessary render cache texture updates by introducing a small delay after zoom has changed.
  • Save and read application state on a background thread, to avoid delays (~3-5ms) on the main thread.

Bug fixes 🐞

  • Introduce size check for render cache. (#425)
  • Fix memory leak on render destroy. (#426)
  • Changes the visibility of jsonObject in annotation to protected, fix ConcurrentModificationException (#427)
  • Fix camera deadlock use-case. (#439)
  • Tileset descriptor resolving fixes:
    • Operation completes even if the offline manager instance gets out of scope
    • Fixes leaking TilesetResolverObserver instance
    • Fixes possible crash on cancellation of pending style pack download operation
  • Fix text rendering when both 'text-rotate' and 'text-offset' are set.
  • Fix Android 12 compatibility to support pending intents mutability.

Dependencies

  • Bump gl-native to v10.0.0-rc.2 (#422)
  • Bump telemetry to v8.0.0, android core to v5.0.0 (#423)

android-v10.0.0-rc.1

10 Jun 13:48
651c69a
Compare
Choose a tag to compare
android-v10.0.0-rc.1 Pre-release
Pre-release

10.0.0-rc.1 June 10, 2021

The Mapbox Maps SDK for Android has moved to release candidate status and is now ready for production use.

Breaking changes ⚠️

  • Rename setter for Light object from add to set. This matches API from GL-JS and clarifies there is only 1 Light object. (#387)
  • Rename setter for Terrain object from add to set. (#391)
  • Remove CacheManager. In the following releases, an API to control temporary map data may be provided. (#399)
  • Remove ResourceOptions::cacheSize and DefaultAmbientCacheSize constant. (#399)
  • Replace ResourceOptions::cachePath with ResourceOptions::dataPath that accepts a folder in which the map stores offline style packages and temporary map data. (#399)
  • Rename TileStore::getInstance() to TileStore::create(). (#399)
  • Remove the MapView#setRenderCache and MapSurface#setRenderCache API and replaced them with experimental MapboxMap#setRenderCacheOptions and MapboxMap#getRenderCacheOptions APIs. (#401)
  • Change the default ResourceOptions#dataPath to ${context.filesDir.absolutePath}/.mapbox/map_data/ and the database name from ambient_cache.db to map_data.db. (#403)

Features ✨ and improvements 🏁

  • The amount of the unique maps tile packs used in the offline regions is capped by the maximum amount equal to 750. The tile region loading is not be performed if it would cause exceeding of the tile pack limit. (#399)

Bug fixes 🐞

  • Fix a typo in MapboxMapUtils jvm name. (#396)
  • Fix an issue that vertical text was not positioned correctly if the text-offset property was used. (#399)
  • Emit MapLoadingError when 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. (#399)
  • Create folder structure for provided ResourceOptions#dataPath when a provided folder doesn't exist. Before the fix, map expected the folder to exist, and in case it didn't, it was difficult to report an error to the application. (#399)
  • Do not emit MapLoadingError when an empty URL is set to GeoJSON source. (#399)
  • Avoid packaging gms-play-services-location by default as part of the Android SDK. (#399)
  • Fix an issue that causes public resource definitions not generated in public.txt file. (#404)

Dependencies

  • Bump gl-native to v10.0.0-rc.1, common to v14.0.1 (#399)

android-v10.0.0-beta.21

03 Jun 11:43
5ba04d6
Compare
Choose a tag to compare
Pre-release

10.0.0-beta.21- June 3, 2021

Breaking changes ⚠️

  • Align load style functions for MapboxMap and Snapshotter. (#371)
Snapshotter.setUri(uri: String) -> Snapshotter.setStyleUri(styleUri: String)
Snapshotter.getUri()-> Snapshotter.getStyleUri()
Snapshotter.setJson(styleJson: String) -> Snapshotter.setStyleJson(styleJson: String)
Snapshotter.getJson()-> Snapshotter.getStyleJson()
MapboxMap.loadStyleJSON(styleJson: String) -> MapboxMap.loadStyleJson(styleJson: String)
  • Change the default ambient cache path to .mapbox/maps/ambient_cache.db (#373)
  • Move text-font property from PointAnnotation to PointAnnotationManager (#375)
  • Remove CredentialsManager in favour of ResourceOptionsManager (#365)
  • Introduce separate minZoom/maxZoom fields into CustomGeometrySourceOptions API instead of the formerly used "zoomRange"

Features ✨ and improvements 🏁

  • Rework setPrefetchZoomDelta to reduce loading of expensive tiles and optimize zoom use-case (#1850)
  • Send billing event when Map is loaded

Bug fixes 🐞

  • Fixed an issue that causes OnStyleLoaded callback not fired when there's a sprite loading error. (#358)
  • Update map camera on first animator update. (#352)
  • Fix crash due to missing access token (#365)
  • Call style loaded callback if data set directly to geojson. (#377)
  • Geojson async data parsing: fixes and improvements. (#380)
  • Fix terrain transparency issue when a sky layer is not used
  • Make style pack resources immutable protecting the style pack from getting out of sync in case the style is updated remotely

Dependencies

  • Bump glNative to 10.0.0-beta.23, common to 13.0.0 (#362)
  • Bump mapbox-events-android to latest releases telem-7.0.3 and core-4.0.2 (#370)

android-v10.0.0-beta.20

20 May 17:46
ee6d2d2
Compare
Choose a tag to compare
Pre-release

10.0.0-beta.20 - May 20, 2021

Breaking changes ⚠️

  • Introduce ResourceOptionsManager to configure the default resource options, and removed the xml configuration options for cache path and tile store path. (#339)
  • Rename default ambient cache database to mapbox/maps/ambient_cache.db (#314)
  • Remove the usage of asset path from the codebase, as it is not useful in Android Maps SDK. (#334)
  • Rename NetworkConnectivity to OfflineSwitch
  • Remove TileLoadOptions from TileRegionLoadOptions. networkRestriction and acceptExpired can now be specified directly in TileRegionLoadOptions.
  • Add totalBytes and transferredBytes to TileStoreLoadResult
  • MapboxMap.setBounds return type changed from Void to Expected
  • Expose tileset version for sources that use TileJSON metadata
  • ResourceRequest offline-data boolean field is replaced with the source string field, which whether the response came from network, cache or tile store.
  • Remove Style.getStyleGeoJSONSourceClusterLeaves, Style.getStyleGeoJSONSourceClusterExpansionZoom, Style.getStyleGeoJSONSourceClusterChildren. All those can be fully replaced by MapboxMap.queryFeatureExtensions.

Parsing geojson on a worker thread. (#327)

If preparing geojson with DSL functions new logic is introduced.

/**
 * DSL function for [GeoJsonSource] performing parsing using background thread.
 * Immediately returns [GeoJsonSource] with no data set and starts preparing actual data
 * using a worker thread.
 *
 * If using runtime styling:
 *
 * loadStyle(style(Style.DARK) {
 *   +geoJsonSource(id) {
 *    featureCollection(collection)
 *   }
 *   ...
 * }
 *
 * compositing style will be performed correctly under the hood and
 * [Style.OnStyleLoaded] will be emitted in correct moment of time when all sources are parsed.
 *
 * If creating geojson sources for already loaded Style please consider using overloaded
 * geoJsonSource(String, GeoJsonSource.Builder.() -> Unit, onGeoJsonParsed: (GeoJsonSource) -> Unit) function
 * and use fully prepared [GeoJsonSource] in onGeoJsonParsed callback.
 */
fun geoJsonSource(
  id: String,
  block: GeoJsonSource.Builder.() -> Unit
): GeoJsonSource

/**
 * DSL function for [GeoJsonSource] performing parsing using a worker thread.
 * Immediately returns [GeoJsonSource] with no data set,
 * fully parsed [GeoJsonSource] is returned in [onGeoJsonParsed] callback.
 *
 * Using this method means that it is user's responsibility to proceed with adding this source,
 * layers or other style objects in [onGeoJsonParsed] callback.
 */
fun geoJsonSource(
  id: String,
  block: GeoJsonSource.Builder.() -> Unit,
  onGeoJsonParsed: (GeoJsonSource) -> Unit
): GeoJsonSource

If updating existing GeoJsonSource from some Style overloaded functions are introduced:

/**
   * Add a FeatureCollection to the GeojsonSource.
   * If [onDataParsed] is provided and not null - data will be loaded in async mode.
   * Otherwise method will be synchronous.
   *
   * @param value the feature collection
   * @param onDataParsed optional callback notifying when data is parsed on a worker thread
   */
  fun featureCollection(
    value: FeatureCollection,
    onDataParsed: ((GeoJsonSource) -> Unit)? = null
  )

Similar functions are introduced for feature and geometry.

Features ✨ and improvements 🏁

  • Add a cameraOptions(cameraState, builderBlock) inline method that helps mutate an existing CameraState object. (#317)
  • Add selected state handling to annotation plugin (#316)
  • Add API for disabling vertical/horizontal scroll gestures (#319)
  • Introduce API to enable render cache feature that could bring up rendering performance improvement. (#326)
  • Add removeAnnotationManager API. (#330)
  • Improve terrain's rendering performance
  • Set begin and end timestamps for StyleLoaded and MapLoaded events, so that developers could check how much time it takes to load style and map, respectively
  • Added tile-requests-delay and tile-network-requests-delay runtime source properties - an API for tile requests delay
  • Introduce MapOptions.optimizeForTerrain option that allow style rendering optimizations for terrain rendering
  • The text-line-height is now data-driven property
  • MapLoaded, StyleLoaded and StyleDataLoaded events now contain begin and end timestamps reflecting the effective duration timespan
  • When line lablels are inside the flip state retaining range (+/- 5 degrees around the vertical direction), the lables' flip state will be kept the same
  • Improve rendering quality of fill outlines when using render cache

Bug fixes 🐞

  • Fix scalebar doesn't refresh issue. (#331)
  • Trigger nested high-level animator listener correctly. (#335)
  • Make compass visible when camera was mutated while compass was disabled. (#322)
  • Enable LocationComponent automatically when style loaded; fix null island location puck (#333)
  • Fix crash if the belowLayerId doesn't exist on the current style (#330)
  • Fixed an issue that style pack download cancels pending tileset descriptor resolving, now tile region loading and style pack loading can work in parallel.
  • Fixed the excessive network usage during map browsing caused by losing of the expiration date and the etag for the cached files
  • Fix excessive network usage for delayed tile requests
  • On style pack update we reset only glyphs and only when the updated options require less glyphs than currently available and we make sure ambient cache size limit is never exceeded
  • Emit StyleDataLoaded and SourceDataLoaded synchronously if possible, so that developers could modify style and sources before map starts rendering style
  • Fix occasional Adreno 640 and 620 driver warnings and deadlock when terrain is used
  • Fix rendering order of transparent terrain proxy tiles

Known issues

When using this release, the merged Manifest comes with an unnecessary WRITE_SETTINGS permission declaration. You can ignore that permission and not request it or add this to your Manifest file as a workaround:

<uses-permission android:name="android.permission.WRITE_SETTINGS" tools:node="remove"/>

This permission declaration will be removed in future releases.

Dependencies

  • Update telemetry (v7.0.1) and core (v4.0.1) dependencies to latest major version releases (#337)
  • Bump gl-native to v10.0.0-beta.22 and common to v12.0.0. (#338)

android-v10.0.0-beta.19

05 May 18:10
f89c20c
Compare
Choose a tag to compare
Pre-release

10.0.0-beta.19 - May 5, 2021

Breaking changes ⚠️

  • Remove temporary CustomMapInterface used for testing, obsolete with having interface inheritance from upstream. (#296)
  • Align MapCameraManagerDelegate with MapCameraManagerInterface (#293)
  • Refactor CameraOptions and change MapboxMap.getCameraState method to return non-nullable CameraState record
  • Remove MapboxMap.getMinZoom, MapboxMap.getMaxZoom and MapboxMap.getScale methods that are duplicate of functionality provided by MapboxMap.getBounds. MapboxMap.getBounds returns new CameraBounds type with non-nullable fields.
  • Remove MapboxMap.setDefaultFramebufferObject.
  • Remove MapboxMap.dumpDebugLog.
  • Remove isPanning, isRotating, isScaling and cancelTransitions methods from MapboxMap. Controlling map animations should be done with camera animation plugin.
  • Remove following methods from MapCameraManagerDelegate (formerly MapCameraDelegate): getLan(), getLon(), getPitch(), getBearing(), getPadding(), setBearing(double). Those properties could be accessed now from MapCameraManagerDelegate.cameraState directly.

OfflineManager and CacheManager

  • Introduce TileStoreUsageMode enum and use it in resource options. New enum allows to set tile store usage mode in an non ambiguous way.
  • Cache manager asynchronous calls complete even after the cache manager instance gets out of scope on the client side. Fix possible crash on setDatabasePath() call
  • CacheManager::prefetchAmbientCache() semantics is updated

Features ✨ and improvements 🏁

  • Add styleUri property in MapInitOptions (#287)
  • Refactored plugin system to have more granular control over which plugins are loaded when creating a MapView programmatically. (#231)
  • Instrument tests for offline (#290)
  • Cleanup kdoc documentation, remove html tags (#305)
  • Reduce GPU memory usage by reusing depth stencil buffer for terrain rendering

Bug fixes 🐞

  • Request layout when updating ornaments margins, making updates immediate (#292)
  • Remove runtime plugin dependency for legacy location plugin. (#295)
  • Fix an issue that causes the extension functions not discoverable from downstream projects. (#299)
  • Style and map error loading listeners are only called for the style that was associated to the listeners when style loading started. This avoid calling the wrong listeners with multiple style loads. Renamed Style#isStyleLoadInited to Style#isStyleLoadInitiated. (#300)
  • Fix crash if doing setCamera during map loading (#310)
  • Fix map rendering issue when text-field's inline images used with complex case expressions
  • Fix erroneous font eviction when text-field's formatted sections have text-font overrides
  • Fix Adreno specific crash that happens when terrain is enabled
  • Fix OfflineManager network errors handling
  • Fix map rendering issue when feature-state and terrain features are enabled
  • The ResourceRequest event response.offline-data field now indicates whether or not the response came from tile store

Dependencies

  • Bump to gl-native v10.0.0-beta.21, update common v11.0.2. (#304)

android-v10.0.0-beta.18

22 Apr 20:40
7c47fd4
Compare
Choose a tag to compare
Pre-release

10.0.0-beta.18 - April 22, 2021

Breaking changes ⚠️

  • Rename MapView plugin extension functions. (#272)
    • mapView.getAnnotationPlugin() -> mapView.annotations
    • mapView.getGesturesPlugin() -> mapView.gestures
    • mapView.getOverlayPlugin() -> mapView.overlay() // using function here because of experimental annotation
    • mapView.getLocationComponentPlugin() -> mapView.location
    • mapView.getCameraAnimationsPlugin() -> mapView.camera
    • mapView.getAttributionPlugin() -> mapView.attribution
    • mapView.getCompassPlugin() -> mapView.compass
    • mapView.getLogoPlugin() -> mapView.logo
    • mapView.getScaleBarPlugin() -> mapView.scalebar
  • Remove deprecated location plugin (#276)
  • Add feature sdk initialisation (#269)
    • Load the Mapbox Street style by default if user doesn't load any style before the onStart lifecycle event.
    • Introduce CredentialsManager to manage mapbox access token, when all MapViews should use same token could be handled by using CredentialsManager.shared static object.
    • Introduce MapInitOptions to replace MapboxMapOptions. When adding a map programmatically, client codes can be written in a following way
     // set map options
      val mapOptions = MapOptions.Builder()
        .constrainMode(ConstrainMode.HEIGHT_ONLY)
        .glyphsRasterizationOptions(
          GlyphsRasterizationOptions.Builder()
            .rasterizationMode(GlyphsRasterizationMode.IDEOGRAPHS_RASTERIZED_LOCALLY)
            .build()
        )
        .build()
    
      // set token and cache size for this particular map view
      val resourceOptions = ResourceOptions.Builder()
        .accessToken(getString(R.string.mapbox_access_token))
        .cacheSize(75_000L)
        .build()
    
      // set initial camera position
      val initialCameraOptions = CameraOptions.Builder()
        .center(Point.fromLngLat(-122.4194, 37.7749))
        .zoom(9.0)
        .build()
    
      val mapboxMapOptions =
        MapInitOptions(this, resourceOptions, mapOptions, initialCameraOptions, true)
      // create view programmatically
      customMapView = MapView(this, mapboxMapOptions)
    

Features ✨ and improvements 🏁

  • High-level animations return cancelable interface (#262)
  • Introduce OfflineManager API that manages style packs and produces tileset descriptors for the tile store.
    • By default, users may download up to 250MB of data for offline use without incurring additional charges. This limit is subject to change during the beta.
    • The new API replaces the deprecated OfflineRegionManager API. The OfflineManager API can be used to create offline style packs that contain style data, such as: style definition, sprites, fonts and other resources. Tileset descriptors created by the OfflineManager API are used to create tile packs via TileStore API. Mobile maps SDKs use tile packs for rendering map content. Example of how to use API is presented in a following snippet (pseudocode):
 // 1. Get an instance of OfflineManager.
 val offlineManager = OfflineManager(map.getResourceOptions())

 // 2. Create a tile region with tiles for Streets
 TilesetDescriptorOptions tilesetOptions(
     "mapbox://styles/mapbox/streets-v11",
     0, // min zoom
     5, // max zoom
 );

 // Creation of a tileset descriptor WILL implicitly create a style package for provided StylePackLoadOptions.
 tilesetOptions.stylePackOptions = StylePackLoadOptions(GlyphsRasterizationMode.AllGlyphsRasterizedLocally);
 val descriptor = offlineManager.createTilesetDescriptor(tilesetOptions);

 val tileStore = TileStore.getInstance();
 TileRegionLoadOptions tileRegionLoadOptions(geometry, [descriptor]);
 tileStore.loadTileRegion("my_region", tileRegionLoadOptions,
   onProgressCallback(result) {
     // Handle TileRegionLoadProgress result
   },
   onFinishedCallback(result) {
     if (result) {
       // Handle TileRegion result
     } else {
       // Handle TileRegionError
     }
   }
 );
  • Add offline activity example. (#259)
  • Load the Mapbox Street style by default if user doesn't load any style before the onStart lifecycle event(#248)

Bug fixes 🐞

  • Keep CompassPlugin enabled/disabled state after other properties update (#252)
  • Fix disabling logo in xml. (#273)
  • Introduce StyleInterface that include the current display's pixel ratio, and fix Style#addImage to take the correct pixel ratio from display. (#228)
  • Properly reset anchor after some gestures。 (#279)
  • Remove animator cancel listeners logic duplicating end listeners logic. (#280)

Dependencies

  • Bump gl-native to v10.0.0-beta.20, common to v11.0.1 (#261)

android-v10.0.0-beta.17

13 Apr 20:23
b2a8b6f
Compare
Choose a tag to compare
Pre-release

10.0.0-beta.17 - April 14, 2021

Breaking changes ⚠️

  • [Annotation plugin] Rename annotation classes, the rules are as follows and applied for Annotations/Options/Managers (#227)
    • Symbol -> PointAnnotation
    • Circle -> CircleAnnotation
    • Line -> PolylineAnnotation
    • Fill -> PolygonAnnotation
  • mapboxMap.queryRenderedFeatures will return a new data class QueriedFeature which will contain additional properties (#247):
    • source (id of the source)
    • sourceLayer (id of the source's layer)
    • state (feature's state)
  • Rename Style#isStyleFullyLoaded to Style#isStyleLoaded
  • Remove old map#drag API and the AnimationOptions API
  • Don't emit MapIdle event when there is gesture and / or user animation in progress
  • Make overlay plugin experimental (#233)

Features ✨ and improvements 🏁

  • Introducing NetworkConnectivity API (offline switch). If setting setMapboxStackConnected(false), the Reachability API will report NotReachable, http requests are being blocked and if running, cancelled.
  • Added new CameraManager.cameraForCoordinates overload
  • Added support for query rendered features for Circle Layer on Terrain
  • Enable identical code folding and -lto-O3 optimizations to reduce binary size of native map shared library

Bug fixes 🐞

  • Fix runtime crash if logo / attribution not enabled (#240)
  • Fixed a bug that causes map not loading when connected through ethernet.
  • Fix distance expression parsing for geometries containing over 20k points
  • Fixed holes in the ground for terrain with negative elevation
  • Make StyleImageMissing callback a no-op after ImageManager destruction
  • Reset unprocessed event queue for destructed renderer
  • Fix clipping of fill-extrusions on near plane
  • Set 'clusterMaxZoom' to be 'maxZoom-1' when it is not provided
  • Fix crash for the case when MapSnapshotter object is destructed from within user provided callback
  • Terrain render cache now disabled during property transitions
  • Fix missing terrain tiles when camera is on mountain peak
  • Black screen not used during loading anymore, prefering platform background
  • Emit CameraChanged, SourceAdded(Removed) and StyleImageMissing events synchronously

Dependencies

  • [deps] Bump gl-native to v10.0.0-beta.19, common to v11.0.0 (#247)

android-v10.0.0-beta.16

25 Mar 20:43
5c8a0ef
Compare
Choose a tag to compare
Pre-release

10.0.0-beta.16 - March 25, 2021

Breaking changes ⚠️

  • Remove ModelLayer and ModelSource API (#128)
  • Refactor Event API into new Observers. (#166)
  • Bump minSdkVersion of the SDK to 21, and bumped okhttp dependency to v4.9.0. (#176)
  • Rename jumpTo(options: CameraOptions) to setCamera(options: CameraOptions), rename setFreeCameraOptions (options: FreeCameraOptions) to setCamera(options: FreeCameraOptions). (#176)
  • Rename OnMapLoadingFinishedListener to OnMapLoadedListener. (#176)
  • Introduce OnStyleDataLoadedListener to replace OnStyleLoadingFinishedListener, and introduce OnSourceDataLoadedListener to replace OnSourceChangedListener. So that developers have granular control of style/source loading status. (#176)
  • Introduce coordinateBoundsForCamera() API to replace the getRegion() API. (#176)
  • Remove MapObserver from MapSurface's constructor. (#200)

Features ✨ and improvements 🏁

  • [Annotation plugin] Add symbol cluster support (#122)
  • [map] Make public API entry points as MapView and Snapshotter (#149)
  • [plugins] Remove PluginRequirementException (#158)
  • Use String protocol for passing GeoJSON data (#162)
  • [Annotation plugin] Set default values for annotation option properties to null. (#173)
  • [rendering] Schedule non-rendering tasks on Android's scheduler to improve render performance. (#176)
  • [rendering] Query rendered features now work for fill-extrusions when terrain is enabled. (#176)
  • [rendering] Improved terrain rendering performance due to reduction of loaded tiles. (#176)
  • [doc] Change http link to markdown style in doc (#187)
  • [rendering] Differentiate render tasks and non-render tasks (#192)
  • [gestures] Introduce platform-driven drag API to move a map (#201)

Bug fixes 🐞

  • [Annotation plugin] Implement MapStyleObserverPlugin to listen style load event to reload layer and source (#161)
  • [gestures] Fix crash if zooming for SDK less than 23 (#171)
  • Fix an issue that will result in map not rendering on a device with Ethernet connection. (#176)
  • Fix the crash when running maps on the emulator. (#176)
  • Patch scroll gesture with a pitched camera (#184)
  • [locationcomponent] Fix jitter animations if interrupting animations (#185)
  • [animation] Fix zero duration animators, fix medium-level animators to use only CameraAnimators (#198)
  • [animations] Fix interpolation for flyTo (#202)

Dependencies

  • Update minSdkVersion of the SDK to 21, and bumped okhttp dependency to v4.9.0. (#176)
  • Update gl-native to v10.0.0-beta.17, common to v10.0.2 (#176)