Interactive, thoroughly customizable maps in native Android powered by vector tiles and OpenGL.

Overview

Mapbox Maps SDK for Android

CLA assistant

The Mapbox Maps SDK for Android is a public library for displaying interactive, thoroughly customizable maps in native Android. It takes map styles that conform to the Mapbox Style Specification, applies them to vector tiles that conform to the Mapbox Vector Tile Specification, and renders them using OpenGL.

Getting Started

This README is intended for developers who are interested in contributing to the Mapbox Maps SDK for Android. Please visit https://docs.mapbox.com/android/beta/maps/guides/ for general information and instructions on using the Maps SDK in your Android application.

Developing

If you are interested in contributing to the Maps SDK, please see the DEVELOPING.md file for information on setting up, running and building the SDK.

Reporting issues / Need help?

Report a bug 🐞

Please use our bug template to report any issues.

Request a new feature or enhancement 🍏

Please use our feature template to request new features or enhancements.

Other questions

Can't find the answer you're looking for? Contact support

Historical Note

This repository is a continuation of the Mapbox Maps SDK for Android available at mapbox/mapbox-gl-native-android.

Comments
  • Map not updating on certain Xiaomi devices using Android Auto

    Map not updating on certain Xiaomi devices using Android Auto

    Environment

    • Android OS version: 12 SKQ1.211006.001
    • Devices affected: tested with Xiaomi Poco F3, probably all Xiaomi devices running Android 12
    • Maps SDK Version: for our app we currently are using 10.3.0-rc.1, also tested with the one provided in your Android Auto sample app.

    Observed behavior and steps to reproduce

    As soon as the main app is not running in foreground on the phones screen the map on Android Auto will stop updating. Other components like speed limits, instructions and so on still update. I just ran the provided Android Auto Example app, as soon as I switch to some other app or turn off the phone screen map updates on Android Auto stop. The position icon and camera are not moving anymore and will only get back to work when the app is running in foreground again.

    Expected behavior

    Map updates on Android Auto while the app is not in foreground or the phones screen is turned off.

    Notes / preliminary analysis

    I followed https://dontkillmyapp.com/xiaomi to make sure the app doesn't get killed by the system.

    I tried to update the dependencies of the sample app to see if it changes anything, but the issue is still the same.

    com.mapbox.navigation:ui-androidauto:0.2.0
    com.mapbox.search:mapbox-search-android-ui:1.0.0-beta.30
    com.mapbox.navigation:android:2.5.0-rc.1
    

    I've uploaded a video showing the issue, you can see that the Android Auto screen seems to freeze but the current speed is still updated. As soon as the app is in foreground on the phones screen it jumps to the current location.

    https://user-images.githubusercontent.com/646435/171581735-f9a1d2f9-254e-4a82-8da5-79095065f6c1.mov

    bug :beetle: android auto 
    opened by g4rb4g3 59
  • Robo crash: terminating with uncaught exception of type jni::PendingJavaException

    Robo crash: terminating with uncaught exception of type jni::PendingJavaException

    Environment

    • Android OS version: 28
    • Devices affected: Pixel
    • Maps SDK Version: v10.0.0-beta.15

    Observed behavior and steps to reproduce

    https://console.firebase.google.com/u/0/project/mapbox-maps-android/testlab/histories/bh.2bfab35e2b9f8cf5/matrices/8989864525422661528/executions/bs.6891195bb7d3ac7b/issues

    Expected behavior

    No crash

    Notes / preliminary analysis

    Additional links and references

    bug :beetle: 
    opened by kiryldz 24
  • Satellite Styles don't work on an Offline map

    Satellite Styles don't work on an Offline map

    Environment

    • Android OS version: Android 12 (S)
    • Devices affected: Pixel 6 Pro, but likely others
    • Maps SDK Version: 10.6.0

    Observed behavior and steps to reproduce

    When using the offline map functionality with Satellite or Satellite Streets styles, the rasterised tiles appears as black squares. This results in the entire map being black in the case of the Satellite style, or the streets being overlayed on a black background for Satellite Streets.

    To reproduce:

    • Modify the OfflineActivity example in this repo, replacing references to Style.OUTDOORS with Style.SATELLITE
    • Build the app, navigate to the activity, begin the download, and view the map
    • Note that the map is blank, but the internal files show the tiles were downloaded to the tilestore
    • Also note that the logs show the map is trying to pull the tiles from the internet instead, but is blocked by the OfflineSwitch setting

    Screenshots:

    Screenshot_20220627-130812 Screenshot_20220627-131115

    Expected behavior

    The Offline functionality should work with Satellite styles. The docs for Offline functionality don't give a reason why Satellite styles wouldn't work on an Offline map, and the restrictions it does give wouldn't exclude Satellite styles.

    feature :green_apple: 
    opened by ghost 20
  • Mapbox crashes on setCamera

    Mapbox crashes on setCamera

    Environment

    • Android OS version: 11
    • Devices affected: Pixel3
    • Maps SDK Version: 10 RC8

    Hi,

    i get this stacktrace reported on a crash that randomly appears on android auto:

    java.lang.Error: std::exception
            at com.mapbox.maps.CameraManager.setCamera(CameraManager.java:-2)
            at com.mapbox.maps.NativeMapImpl.setCamera(NativeMapImpl.kt:35)
            at com.mapbox.maps.MapboxMap$setCamera$1.invoke(MapboxMap.kt:280)
            at com.mapbox.maps.MapboxMap$setCamera$1.invoke(MapboxMap.kt:37)
            at com.mapbox.maps.UtilsKt.call(Utils.kt:9)
            at com.mapbox.maps.MapboxMap.setCamera(MapboxMap.kt:280)
            at com.mapbox.maps.plugin.animation.CameraAnimationsPluginImpl.performMapJump(CameraAnimationsPluginImpl.kt:185)
            at com.mapbox.maps.plugin.animation.CameraAnimationsPluginImpl.access$performMapJump(CameraAnimationsPluginImpl.kt:36)
            at com.mapbox.maps.plugin.animation.CameraAnimationsPluginImpl$commitChangesRunnable$1.run(CameraAnimationsPluginImpl.kt:62)
            at android.os.Handler.handleCallback(Handler.java:938)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:223)
            at android.app.ActivityThread.main(ActivityThread.java:7664)
            at java.lang.reflect.Method.invoke(Method.java:-2)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
    

    Unfortunately it does not contain any information, which part of my code was executed before this. I would assume it was caused by a call of setCamera but later in the stack trace i also see the Camera Animator Plugin. So i'm not really sure where to look for.

    Is there any way to find the problem here? What could typically be the problem here?

    bug :beetle: 
    opened by SamuelBrucksch 19
  • Mapbox SDK corrupting SQLite database

    Mapbox SDK corrupting SQLite database

    @dlmcauslan We’ve moved your original issue into a private repo. However, since you can’t comment/follow there, I’m reproducing your original issue here. Apologies for the confusion.


    Environment

    • Android OS version: 10
    • Devices affected: Samsung Galaxy Tab Active Pro (SM-T545), Samsung Galaxy Tab Active 3 (SM-T575)
    • Maps SDK Version: 10.0.0-beta.15 and newer

    Observed behavior and steps to reproduce

    Using a version of the Mapbox SDK that is newer than 10.0.0-beta.15 can cause the local SQLite database of our app to become corrupted. This is not an issue on versions 10.0.0-beta.14 and older.

    To repoduce:

    • Do a complete uninstall, and fresh install of our app.
    • Rapidly zoom in and out on the map to cause a large number of tile requests.
    • Eventually (usually within one minute - although it depends on how often the app is accessing it's local database) the app will completely crash with the following stack trace:
    W/SQLiteLog: (28) lockBtree: nPageHeader 1284780726, nPageFile 74, dbFileVers: 1016617649 235012096
    E/SQLiteLog: (11) Invalid MagicHeader!
    E/SQLiteLog: (11) Corrupt in lockBtree: rc 26, nPageHeader 1284780726, nPageFile 74
    D/SQLiteConnection: Corruption detected - isPrimary: true, address: @fa8b610
    E/DefaultDatabaseErrorHandler: Corruption reported by sqlite on database: /data/user/0/com.tracmap.myapp/databases/my_app_database.db
    E/SQLiteDatabase: DB wipe detected: package=com.tracmap.myapp reason=corruption file=/data/user/0/com.tracmap.myapp/databases/my_app_database.db ctime=2021-05-03T22:22:09Z mtime=2021-05-03T22:22:09Z atime=2021-05-03T22:13:33Z checkfile [unable to obtain timestamp]
    A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 28779 (al.myapp), pid 28779 (al.myapp)
    

    Expected behavior

    Mapbox should not be able to corrupt the app's local database.

    The Magic Header should be 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. This byte sequence corresponds to the UTF-8 string "SQLite format 3" including the nul terminator character at the end. https://www.sqlite.org/fileformat.html

    Notes / preliminary analysis

    Analysing the header bytes of the datbase file after corruption we get 53 51 4C 69 74 14 03 03 00 01 01 17 03 03 00 13 which corresponds to the UTF-8 string "SQLit".

    So it appears that somehow making lots of tile requests is corrupting the actual database file itself, or overwriting some of its bytes.

    Additional links and references

    opened by kkaefer 16
  • View Annotations not visible

    View Annotations not visible

    Environment

    • Android OS version: 12
    • Devices affected: Samsung Galaxy S20+
    • Maps SDK Version: 10.2.0-beta.1

    Observed behavior and steps to reproduce

    I just used this basic code.

                                features.forEach { feature ->
                                    val title = feature.getStringProperty("title")
                                    val subtitle = feature.getStringProperty("subtitle")
                                    val view = binding.mapView.viewAnnotationManager.addViewAnnotation(
                                        R.layout.layout_bubble,
                                        viewAnnotationOptions {
                                            geometry(feature.geometry()!!)
                                            associatedFeatureId(feature.id()!!)
                                            allowOverlap(true)
                                        }
                                    )
                                    LayoutBubbleBinding.bind(view).apply {
                                        textViewTitle.text = title
                                        textViewSubtitle.text = subtitle
                                        textViewSubtitle.isVisible = subtitle != null
                                    }
                                }
    

    Expected behavior

    No annotation shows up. I can confirm that the list of features is not empty, and that the id and geometry are not null.

    Notes / preliminary analysis

    I tried also using the asynclayoutinflater, or manually inflating the view, but no help. I tried setting the attachToRoot boolean to true when inflating the view, it shows up but the annotation is stuck on the upper left corner. I tried setting the view annotation option visible value to true, and not setting it (null) but it does not help.

    I can also verify that the Layout resource specifies that the view is visible.

    bug :beetle: 
    opened by VincentJoshuaET 14
  • Crash on zoom in

    Crash on zoom in

    Environment

    • Android OS version: Android 11, Android 8
    • Devices affected: Samsung Galaxy Tab A8, Huawei MediaPad T5
    • Maps SDK Version: 10.7.0

    Observed behavior and steps to reproduce

    There is a crash when I zoom in to a specified value in style.json. Maybe there is a problem with huge amounts of features/ points (sometimes there are 260k features/ 540k points).

    During loading sources (on map zoom in) there is fast memory use growth (from 0,5GB to 2,2GB and then there is the crash)

    Expected behavior

    No crash when moving/ zooming the map

    Notes / preliminary analysis

    I use geojsons as sources, and have to have the possibility to work offline

    Additional links and references

    demo app: https://github.com/bartek977/MapboxDemoApp

    bug :beetle: 
    opened by bartek977 13
  • App crashes with cryptic error

    App crashes with cryptic error

    Hi,

    we get following crash on bugsnag:

    SIGABRT Abort program 
        /apex/com.android.runtime/lib64/bionic/libc.so:326348 abort
        /data/app/~~9UT7RC2gEdtKWwr639Mihg==/com.iternio.abrpapp-GIMId0UeSTiJHs5HWpCQ_w==/split_config.arm64_v8a.apk!/lib/arm64-v8a/libc++_shared.so:655808 __cxa_bad_cast
        /data/app/~~9UT7RC2gEdtKWwr639Mihg==/com.iternio.abrpapp-GIMId0UeSTiJHs5HWpCQ_w==/split_config.arm64_v8a.apk!/lib/arm64-v8a/libc++_shared.so:656332 0x6d4d9403cc
        /data/app/~~9UT7RC2gEdtKWwr639Mihg==/com.iternio.abrpapp-GIMId0UeSTiJHs5HWpCQ_w==/split_config.arm64_v8a.apk!/lib/arm64-v8a/libc++_shared.so:737804 0x6d4d95420c
        /data/app/~~9UT7RC2gEdtKWwr639Mihg==/com.iternio.abrpapp-GIMId0UeSTiJHs5HWpCQ_w==/split_config.arm64_v8a.apk!/lib/arm64-v8a/libc++_shared.so:735504 __cxa_get_exception_ptr
        /data/app/~~9UT7RC2gEdtKWwr639Mihg==/com.iternio.abrpapp-GIMId0UeSTiJHs5HWpCQ_w==/split_config.arm64_v8a.apk!/lib/arm64-v8a/libc++_shared.so:735376 0x6d4d953890
        /data/app/~~9UT7RC2gEdtKWwr639Mihg==/com.iternio.abrpapp-GIMId0UeSTiJHs5HWpCQ_w==/split_config.arm64_v8a.apk!/lib/arm64-v8a/libmapbox-maps.so:2077120 0x6d492b11c0
    

    Unfortunately I can not reproduce on my Pixel 3 with Andropid 12, however it seems to be related to Pixel 5 and Pixel 4a on Android 12 only at the moment. We did not get reports for other phones and Android OS (yet).

    We use mapbox sdk 10.3.0-rc.1 for Android Auto, but also @react-native-mapbox-gl/maps on app side that is based on react native, so not really sure, from which side the error comes. Is there anything you can do to decode the exception and get more information where the error comes from?

    Thanks! Samuel

    bug :beetle: 
    opened by SamuelBrucksch 13
  • java.lang.UnsatisfiedLinkError: 'void com.mapbox.maps.assets.AssetManagerProvider.initialize(android.content.res.AssetManager)'

    java.lang.UnsatisfiedLinkError: 'void com.mapbox.maps.assets.AssetManagerProvider.initialize(android.content.res.AssetManager)'

    Android Studio: 2021.3.1 Patch 1 Mapbox: implementation 'com.mapbox.maps:android:10.9.0'

    Getting error in preview layout window of android studio:

    java.lang.UnsatisfiedLinkError: 'void com.mapbox.maps.assets.AssetManagerProvider.initialize(android.content.res.AssetManager)' at com.mapbox.maps.assets.AssetManagerProvider.initialize(Native Method) at com.mapbox.maps.MapController.<init>(MapController.kt:62) at com.mapbox.maps.MapView.<init>(MapView.kt:101) at com.mapbox.maps.MapView.<init>(MapView.kt:70) at com.mapbox.maps.MapView.<init>(MapView.kt:64) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:351) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:200) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:161) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:294) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:417) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:428) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:332) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1127) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088) at android.view.LayoutInflater.inflate(LayoutInflater.java:686) at android.view.LayoutInflater.inflate(LayoutInflater.java:505) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:359) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:436) at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:121) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:717) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$9(RenderTask.java:873) at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$3.run(RenderExecutor.kt:192) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)

    Cant seem to resolve, anyone else having same issue?

    opened by johnnyzen 12
  • java.lang.UnsatisfiedLinkError: No implementation found for void com.mapbox.maps.assets.AssetManagerProvider.initialize(android.content.res.AssetManager)

    java.lang.UnsatisfiedLinkError: No implementation found for void com.mapbox.maps.assets.AssetManagerProvider.initialize(android.content.res.AssetManager)

    Environment

    • Android OS version: Tested on Android 10
    • Devices affected: Both the real device and emulator
    • Maps SDK Version: v10.3.0

    Observed behavior and steps to reproduce

    • Dependences: Only using com.mapbox.maps:android:10.3.0.
    • Then, we initialized the map programmatically like this.
    val mapView: MapView by lazy {
       ResourceOptionsManager.getDefault(context = context, context.getString(R.string.map_mapbox_access_token))
       MapView(context = context)
    }
    
    • The the error happened with the following logs
    java.lang.UnsatisfiedLinkError: No implementation found for void com.mapbox.maps.assets.AssetManagerProvider.initialize(android.content.res.AssetManager) (tried Java_com_mapbox_maps_assets_AssetManagerProvider_initialize and Java_com_mapbox_maps_assets_AssetManagerProvider_initialize__Landroid_content_res_AssetManager_2)
            at com.mapbox.maps.assets.AssetManagerProvider.initialize(Native Method)
            at com.mapbox.maps.MapController.<init>(MapController.kt:65)
            at com.mapbox.maps.MapView.<init>(MapView.kt:101)
            at com.mapbox.maps.MapView.<init>(MapView.kt:52)
            at com.mapbox.maps.MapView.<init>(MapView.kt:52)
    

    Thank you!

    bug :beetle: 
    opened by quangpaypay 12
  • Moving style layer on top crashes app

    Moving style layer on top crashes app

    Environment

    • Android OS version: 12
    • Maps SDK Version: 10.2.0

    Observed behavior and steps to reproduce

    Calling API style.moveStyleLayer("layer-id", null) causes app to crash.

    W/System.err:     at com.mapbox.maps.StyleManager.moveStyleLayer(Native Method)
            at com.mapbox.maps.NativeMapImpl.moveStyleLayer(NativeMapImpl.kt:277)
            at com.mapbox.maps.Style$moveStyleLayer$1.invoke(Style.kt:147)
            at com.mapbox.maps.Style$moveStyleLayer$1.invoke(Style.kt:23)
            at com.mapbox.maps.UtilsKt.call(Utils.kt:9)
            at com.mapbox.maps.Style.moveStyleLayer(Style.kt:147)
    

    Expected behavior

    Layer moves on top and app doesn't crash.

    bug :beetle: 
    opened by ittna 12
  • Setting LineLayer when taking Snapshots

    Setting LineLayer when taking Snapshots

    New Feature

    Draw LineLayer from style(has set) when taking snapshots

    Why

    1. why you're requesting this feature -> I can check LineLayer has drawn perfectly on my MapView but after I take a snapshot with set style data and check directory, LineLayer is not showing on the result file... I would really appreciate any advice or adding this feature.
    2. Why is it valuable? -> User can check routes he/she passed by as a photo
    opened by vem-popprika 1
  • No Java Documentation

    No Java Documentation

    New Feature

    <- Description of the feature being requested and any outcomes desired, an example use case, and any suggestions for solution ->

    Why

    <- 1-2 sentence description of why you're requesting this feature. What problem does it solve? Why is it valuable? ->

    opened by jnbDeveloper 1
  • LineLayer looks broken when zoom-in and out (specific zoom levels)

    LineLayer looks broken when zoom-in and out (specific zoom levels)

    Environment

    • Android OS version: 12
    • Devices affected: LGE LM-Q520N, Pixel 6
    • Maps SDK Version: 10.9.0

    Observed behavior and steps to reproduce

    I set a LineLayer on MapView with hardcoded GeoJsonSource from sample code (which is fine). problem is when it comes to pinch-to-zoom(in and out) in specific zoom levels, the shape of line looks broken. and I reckon that pattern changing is irregular. is there any way to make the line be smooth? (that looks rough)

    please check it out

    https://user-images.githubusercontent.com/109714693/209517730-61e2818f-a487-4b46-8e57-e8ca74017e9a.mp4

    Expected behavior

    to make drawn line smooth when zoom in and out.

    Notes / preliminary analysis

    and my LineLayer configuration is here. +lineLayer(LINE_LAYER_ID, GEO_SOURCE_ID) { lineCap(LineCap.ROUND) lineJoin(LineJoin.ROUND) lineOpacity(0.5) lineWidth(60.0) lineColor("#FFFFFF") }

    bug :beetle: 
    opened by vem-popprika 0
  • SymbolLayer().filter(Expression.literal(true))  bug

    SymbolLayer().filter(Expression.literal(true)) bug

    com.mapbox.maps.MapboxStyleException: Add layer failed: Failed to set filter property for class-layer-line-id layer. Error: filter value must be a non empty array

    use sdk 10.10.0

    why filter cannot use Expression.literal(true) or Expression.literal("true")

    bug :beetle: 
    opened by byedo 0
  • when i setOnTouchListener  on mapview,it cannot pinch-to-zoom!

    when i setOnTouchListener on mapview,it cannot pinch-to-zoom!

    use mapbox android sdk 10.10.0 i use this simple code

        mapView?.also {
            it.setOnTouchListener { v, event ->
                v.onTouchEvent(event)
            }
        }
    

    when i use two finger , i cannot zoom!

    bug :beetle: 
    opened by byedo 0
Releases(v10.10.0)
  • v10.10.0(Dec 7, 2022)

    10.10.0 December 07, 2022

    Features ✨ and improvements 🏁

    • Introduce view annotation ViewAnnotationManager.annotations API to access list of added view annotations. (1751)
    • Introduce view annotation ViewAnnotationManager.cameraForAnnotations API to get camera options for given view annotations list. (1753)
    • Unify the margin/translation Widget APIs into the WidgetPosition.offset, rename WidgetPosition.horizontal/WidgetPosition.vertical to WidgetPosition.horizontalAlignment/WidgetPosition.verticalAlignment; Deprecate the original constructors and setTranslation APIs. (1782)
    • Add API for removing atmosphere. (1841)
    • Introduce MapTelemetry.getUserTelemetryRequestState API. (1877)
    • Eliminate tiles re-creation and re-layout on zooming map with globe, when the camera is trespassing the zoom projection border. (1891)
    • Avoid tiles re-layout on enabling terrain with zero exaggeration. (1891)
    • Added API to enable/disable rendering of world copies in mercator mode. (1891)
    • Improve symbol filtering performance when distance-from-camera and pitch expressions are used. (1891)
    • Reduce number of operations when terrain is used with zero exaggeration. (1891)

    Bug fixes 🐞

    • Fix an issue when touch events didn't pass through clickable view annotations. (1745)
    • Trigger repaint after BitmapWidget is updated. (1797)
    • Fix a crash after removing the view annotation if view has an attached animation or transition. (1831)
    • Emit the last indicator state when new listeners are added to the location component. (1827)
    • Fix an issue where queried symbol features did not contain the associated feature state. (1836)
    • Throw understandable exception when using widgets with the MapView or MapSurface and not specifying MapInitOptions.MapOptions.contextMode = ContextMode.SHARED preventing hard-catching runtime crashes or artifacts. (1834)
    • Fix an issue where location updates were not provided on correct thread/looper. (1836)
    • Dispatch location updates as a location event when the app is moving to background. (1836)
    • Fix LocationEngine to support multiple concurrent clients. (1836)
    • Fix immediate camera animation on API level 23 or below. (1842)
    • Fix loss of Widget during background/foreground transition. (1864)
    • Fix displaying MapView in Android Studio Layout Preview. (1881)
    • Fix a bug where ViewAnnotationManager.cameraForAnnotations API doesn't return correct camera bounds. (1861)
    • Handle OOB when getting DEM Data (1891)
    • Fix a rare precision issue with symbol and circle layer occlusion when terrain is enabled. (1891)
    • Fixes a rare crash caused by a race condition during gesture handling. (1891)
    • Disable location indicator occlusion testing with the terrain when exaggeration is set to 0. This fixes occasional location indicator disappearance. (1891)
    • Fix an issue where queried symbol features did not contain associated feature state. (1891)
    • Clear geojson tiles after the source is updated with empty features in order to eliminate "phantom tile" artefacts and to obviate extra work for keeping empty tiles. (1891)
    • Eliminate duplicated tile async upload requests - fix a race condition causing a tile rendering the previous layout result. (1891)
    • Truncate long single line text in symbol layers to prevent rendering artifact. (1891)
    • Fixes an issue when the mixed usage of patterns and icons caused bleeding of textures. (1891)
    • Fixes visible tile borders when MSAA enabled. (1891)
    • Fix LOD and prevent from flickering on enabling terrain with zero exaggeration. (1891)
    • Setting empty value for a style layer filter now clears the filter. (1891)
    • Fixes rendering artifacts near tile borders when using terrain with zero exaggeration. (1891)
    • Fixes fog rendering when terrain is used with zero exaggeration. (1891)
    • Fix distance-to-center filtering of symbols when terrain is enabled. (1891)
    • Improved cameraForCoordinate result quality with pitch and with terrain. (1891)
    • Fix a crash on Android 10 and below, when Google Play Location Service is not present. (1898)

    Dependencies

    • Update gl-native to v10.10.0 and common to v23.2.1. (1891 1898)
    • Remove mapbox-android-core dependency, it is now part of Mapbox Common library. NOTE:: You need to remove any explicit dependency declaration to com.mapbox.mapboxsdk:mapbox-android-core:<version> from the project to avoid duplicated class definition errors related to location APIs. (1836)
    Source code(tar.gz)
    Source code(zip)
  • v10.10.0-rc.1(Nov 18, 2022)

    10.10.0-rc.1 November 18, 2022

    Features ✨ and improvements 🏁

    • Improve symbol filtering performance when distance-from-camera and pitch expressions are used. (1836)
    • Add API for removing atmosphere. (1841)

    Bug fixes 🐞

    • Trigger repaint after BitmapWidget is updated. (1797)
    • Fix a crash after removing the view annotation if view has an attached animation or transition. (1831)
    • Emit the last indicator state when new listeners are added to the location component. (1827)
    • Fix an issue where queried symbol features did not contain the associated feature state. (1836)
    • Clear geojson tiles after the source is updated with empty features in order to eliminate "phantom tile" artifacts and to obviate extra work for keeping empty tiles. (1836)
    • Fix a regression from v10.10.0-beta.1 release, the BitmapWidget.setTranslation API should offset relative to its original position. (1833)
    • Throw understandable exception when using widgets with the MapView or MapSurface and not specifying MapInitOptions.MapOptions.contextMode = ContextMode.SHARED preventing hard-catching runtime crashes or artifacts. (1834)
    • Fix an issue where location updates were not provided on correct thread/looper. (1836)
    • [telemetry] Dispatch location updates as a location event when the app is moving to background. (1836)
    • Fix LocationEngine to support multiple concurrent clients. (1836)

    Dependencies

    • Update gl-native to v10.10.0-rc.1 and common to v23.2.0-rc.3. (1836)
    • Remove mapbox-android-core dependency, it is now part of Mapbox Common library. NOTE:: You need to remove any explicit dependency declaration to com.mapbox.mapboxsdk:mapbox-android-core:<version> from the project to avoid duplicated class definition errors related to location APIs. (1836)
    • Fix immediate camera animation on API level 23 or below. (1842)
    Source code(tar.gz)
    Source code(zip)
  • extension-androidauto-v0.5.0(Nov 17, 2022)

    0.5.0 November 16, 2022

    Features ✨ and improvements 🏁

    • Make the SDK compatible with Jetpack Car Library v1.2.+. (#1828)
    • Always use MapOptions.contextMode = ContextMode.SHARED when creating the map session preventing hard-catching runtime crashes or artifacts. (1834)

    Dependencies

    • Android Auto car library androidx.car.app:app:1.2.+
    • Supports any version of Mapbox Maps 10.5.+
    Source code(tar.gz)
    Source code(zip)
  • extension-androidauto-v0.4.0(Nov 9, 2022)

    0.4.0 November 7, 2022

    Features ✨ and improvements 🏁

    • Make the SDK compatible with any version of Mapbox Maps v10.5.+. (#1706)
    • Remove experimental annotation from MapboxCarMap, MapboxCarMapObserver, MapboxCarMapSurface, MapboxCarMapGestureHandler, and DefaultMapboxCarMapGestureHandler. (#1767)

    Dependencies

    • Android Auto car library androidx.car.app:app:1.1.+
    • Supports any version of Mapbox Maps 10.5.+
    Source code(tar.gz)
    Source code(zip)
  • v10.9.1(Nov 7, 2022)

  • v10.10.0-beta.1(Nov 3, 2022)

    10.10.0-beta.1 November 03, 2022

    Features ✨ and improvements 🏁

    • Introduce view annotation ViewAnnotationManager.annotations API to access list of added view annotations. (1751)
    • Introduce view annotation ViewAnnotationManager.cameraForAnnotations API to get camera options for given view annotations list. (1753)
    • Eliminate tiles re-creation and re-layout on zooming map with globe, when the camera is trespassing the zoom projection border. (1791)
    • Avoid tiles re-layout on enabling terrain with zero exaggeration. (1791)
    • Asynchronous GeoJSON data parsing when adding a new style source. (1791)
    • Unify the margin/translation Widget APIs into the WidgetPosition.offset, rename WidgetPosition.horizontal/WidgetPosition.vertical to WidgetPosition.horizontalAlignment/WidgetPosition.verticalAlignment; Deprecate the original constructors and setTranslation APIs. (1782)
    • Add APIs to enable/disable rendering of world copies. (1794, 1791)

    Bug fixes 🐞

    • Fix an issue when touch events didn't pass through clickable view annotations. (1745)
    • Handle OOB when getting DEM Data. (1791)
    • Fix a rare precision issue with symbol and circle layer occlusion when terrain is enabled. (1791)
    • Fixes a rare crash caused by a race condition during gesture handling. (1791)
    • Disable location indicator occlusion testing with the terrain when exaggeration is set to 0. This fixes occasional location indicator disappearance. (1791)
    • Exclude map disk cache files from cloud backups. (1791)

    Dependencies

    • Update gl-native to v10.10.0-beta.1 and common to v23.2.0-beta.1. (1791)
    Source code(tar.gz)
    Source code(zip)
  • v10.9.0(Oct 21, 2022)

    10.9.0 October 21, 2022

    Features ✨ and improvements 🏁

    • Rendering performance improvements for fast paced camera changes. (1760)
    • Eliminate tiles re-creation and re-layout on zooming map with globe, when the camera is trespassing the zoom projection border. (1729)
    • Deprecate gesture settings increaseRotateThresholdWhenPinchingToZoom property. (1632)
    • Enable asynchronous tile uploader by default to improve animation performance. (1679)
    • Vector tiles without symbols are not hold for fade-out animation so that less amount of vector tiles are managed at a time. (1679)
    • Add support to set location puck opacity. (1659)
    • Support pitch and distanceFromCenter filters in symbol layers. (1662)
    • Migrate telemetry APIs from mobile-events-android to common SDK implementation. (1672)

    Bug fixes 🐞

    • Fix frequent layout invalidation caused by view annotations calling View.bringToFront(). (1744)
    • Fix flickering of vertically shifted line labels on style change, caused by the wrong initial placement. (1760)
    • Fix location indicator rendering as a rectangle on low zoom levels. (1760)
    • Fix crash caused by using of invalid paint property binders. (1760)
    • Fix "phantom tiles" artefacts after GeoJSON source update when asynchronous tile loading is enabled. (1760)
    • Fix a bug in cameraForGeometry when called on a map with padding set. (1760)
    • Fix scale bar text being cut. (1716)
    • Fix possible crash when adding terrain using Style DSL after consecutive style changes. (1717)
    • Fix scale bar text overlapping. (1728)
    • Fix issue where Widget is not immediately rendered when added to the MapView. (1708)
    • Mitigate symbol flickering on zooming out globe map. (1729)
    • Fix random crash on tiles update when asynchronous uploading is enabled. (1729)
    • Make telemetry a single instance. Avoids module recreation when coming from background. (#1695)
    • Fix scale bar truncated at high zoom levels near the poles. (1620)
    • Fix broken view annotation positioning when marking them View.INVISIBLE and then making View.VISIBLE. (1616)
    • Snap puck to north if puckBearingEnabled is set to false. (1635)
    • Preserve cached properties if applied to the layer before during the Style#getLayer call. (1622)
    • Fix a NullPointerException in StandardGestureListener, where MotionEvent should be nullable. (1645), (1677)
    • Fix incorrect MapView dimensions after background orientation change. (1658)
    • Fix wrong BitmapWidget position when using WidgetPosition.Horizontal.CENTER or WidgetPosition.Vertical.CENTER property. (1651)
    • Fix pixel flickering between tiles on darker styles in globe view. (1679)
    • Fix incorrect shading of rounded corners in fill extrusions when ambient occlusion and/or shadow is enabled. (1679)
    • Fix shadows when the light radial coordinate is zero. (1679)
    • Location indicator layer is occluded by terrain to align rendering behavior with other location indicator rendering types. (1679)
    • Symbol flickering after runtime styling caused by using outdated symbol placement on updated symbol buckets. (1679)
    • Allow Light intensity and Light shadow intensity to accept expressions when using setStyleLight API call. (1679)
    • Fix a bug in cameraForGeometry when called on a map with padding set. (1679)
    • Throw an exception with the meaningful stack trace when constructing Value from an infinite or NaN number. (1681)

    Dependencies

    • Update mapbox-gestures-android dependency to v0.8.0. (1645)
    • Update gl-native to v10.9.0 and common to v23.1.1. (1760)
    Source code(tar.gz)
    Source code(zip)
  • v10.9.0-rc.1(Oct 7, 2022)

    10.9.0-rc.1 October 07, 2022

    Features ✨ and improvements 🏁

    • Eliminate tiles re-creation and re-layout on zooming map with globe, when the camera is trespassing the zoom projection border. (1729)

    Bug fixes 🐞

    • Fix scale bar text being cut. (1716)
    • Fix possible crash when adding terrain using Style DSL after consecutive style changes. (1717)
    • Fix scale bar text overlapping. (1728)
    • Fix issue where Widget is not immediately rendered when added to the MapView. (1708)
    • Fix "phantom tiles" artefacts after GeoJSON source update when asynchronous tile loading is enabled. (1729)
    • Mitigate symbol flickering on zooming out globe map. (1729)
    • Fix random crash on tiles update when asynchronous uploading is enabled. (1729)
    • Fix a crash when Google location service is started in background but stopped in foreground. (1729)
    • Fix an issue where mock field is missing from the LocationEngine updates. (1729)

    Dependencies

    • Update gl-native to v10.9.0-rc.1 and common to v23.1.0-rc.2. (1729)
    Source code(tar.gz)
    Source code(zip)
  • v10.8.1(Sep 30, 2022)

    10.8.1 September 30, 2022

    Bug fixes 🐞

    • Fix incorrect MapView dimensions after background orientation change. (1658)
    • Throw an exception with the meaningful stacktrace when constructing Value from an infinite or NaN number. (1681)
    • Make telemetry a single instance. Avoids module recreation when coming from background. (#1695)
    • Fix a potential style load error when non-ASCII characters are used in the version name, by escaping non US ASCII characters in user-agent header. (1709)

    Dependencies

    • Bump common to v23.0.1. (1709)
    Source code(tar.gz)
    Source code(zip)
  • v10.9.0-beta.2(Sep 28, 2022)

    10.9.0-beta.2 September 28, 2022

    Bug fixes 🐞

    • Make telemetry a single instance. Avoids module recreation when coming from background. (#1695)
    • Fix an issue where location engine doesn't produce bearing/accuracy/speed information with the location updates. (1696)

    Dependencies

    • Bump common sdk to v23.1.0-beta.2. (1696)
    Source code(tar.gz)
    Source code(zip)
  • extension-androidauto-v0.3.0(Sep 26, 2022)

    0.3.0 September 26, 2022

    Features ✨ and improvements 🏁

    • Allow MapboxCarMap to be initialized before the CarContext is created. (#1603)
    • Add MapboxCarMapSessionInstaller and MapboxCarMapScreenInstaller for simpler setup. (#1603)
    • Add Session.mapboxMapInstaller and Screen.mapboxMapInstaller extension functions to create the installers. (#1603)
    • Change MapboxCarMapGestureHandler to a java interface so default methods can be added without breaking java backwards compatibility. (#1670)
    • Change MapboxCarMapObserver to a java interface so default methods can be added without breaking java backwards compatibility. (#1670)
    • Change MapboxCarMap#getEdgeInsets() to mapboxCarMap.getVisibleEdgeInsets() with the addition of mapboxCarMap.getStableEdgeInsets(). (#1670)
    • Add MapboxCarMapObserver#onStableAreaChanged to support all the available functions from the SurfaceCallback. (#1670)
    • Add support for intercepting the SurfaceCallback#onClick when using MapboxCarMap.prepareSurfaceCallback. (#1683)

    Dependencies

    • Android Auto car library androidx.car.app:app:1.1.+
    • Supports any version of Mapbox Maps 10.+
    Source code(tar.gz)
    Source code(zip)
  • v10.9.0-beta.1(Sep 22, 2022)

    10.9.0-beta.1 September 22, 2022

    Features ✨ and improvements 🏁

    • Deprecated gesture settings increaseRotateThresholdWhenPinchingToZoom property. (1632)
    • Enable asynchronous tile uploader by default to improve animation performance. (1679)
    • Vector tiles without symbols are not hold for fade-out animation so that less amount of vector tiles are managed at a time. (1679)
    • Add support to set location puck opacity. (1659)
    • Support pitch and distanceFromCenter filters in symbol layers. (1662)
    • Migrated telemetry APIs from mobile-events-android to common SDK implementation. (1672)

    Bug fixes 🐞

    • Fix scale bar truncated at high zoom levels near the poles. (1620)
    • Fix broken view annotation positioning when marking them View.INVISIBLE and then making View.VISIBLE. (1616)
    • Snap puck to north if puckBearingEnabled is set to false. (1635)
    • Preserve cached properties if applied to the layer before during the Style#getLayer call. (1622)
    • Fix a NullPointerException in StandardGestureListener, where MotionEvent should be nullable. (1645), (1677)
    • Fix incorrect MapView dimensions after background orientation change. (1658)
    • Fix wrong BitmapWidget position when using WidgetPosition.Horizontal.CENTER or WidgetPosition.Vertical.CENTER property. (1651)
    • Fix pixel flickering between tiles on darker styles in globe view. (1679)
    • Location indicator layer is occluded by terrain to align rendering behavior with other location indicator rendering types. (1679)
    • Symbol flickering after runtime styling caused by using outdated symbol placement on updated symbol buckets. (1679)
    • Fix a bug in cameraForGeometry when called on a map with padding set. (1679)
    • Throw an exception with the meaningful stack trace when constructing Value from an infinite or NaN number. (1681)

    Dependencies

    • Update mapbox-gestures-android dependency to v0.8.0. (1645)
    • Update gl-native to v10.9.0-beta.1 and common to v23.1.0-beta.1. (1679)
    Source code(tar.gz)
    Source code(zip)
  • v10.8.0(Sep 7, 2022)

    10.8.0 September 7, 2022

    Features ✨ and improvements 🏁

    • Introduce a callback to be invoked when the device compass sensors need to be re-calibrated. (1513)
    • Add support for LocationComponentSettingsInterface.pulsingMaxRadius to follow location's accuracy radius. (1561)
    • Avoid map content disappearing on the sides of the screen when LOD is enabled. (1650)

    Bug fixes 🐞

    • Support altitude interpolation in location component, and pass through GPS altitude information from the DefaultLocationProvider. (1478)
    • Fix edge cases for renderer that could result in map not rendered. (1538)
    • Fix onAnnotationDragStarted event is still fired when annotation is not draggable. (1552)
    • Fix camera flying away when pitching. (1560)
    • Deliver style to the plugin registry on map start if a new one was loaded after map stop. (1558)
    • Fix default viewport bearing transition doesn't follow shortest path. (1541)
    • Fix OnFpsChangedListener listener to count number of frames rendered over the last second instead of immediate time for render call. (1477)
    • Fix MapView.setMaximumFps method to apply exact FPS value for rendering the map. (1477)
    • Fix Android memory leak when destroying platform view annotation manager. (1568)
    • Fix style getters for terrain, light and atmosphere resetting properties. (1573)
    • Fix possible ANR when destroying renderer. (1567)
    • Fix MapSurface#surfaceChanged to update dimensions for plugins. (1575)
    • Try recreate EGL surface when it throws exception. (1589)
    • Fix MapboxMap extension plugin functions throwing exceptions. (1591)
    • Fix concurrent modification exception when using widgets. (1597)
    • User-specified minimum and maximum zoom now correctly adjusted for map size. (1650)
    • Avoid placement of line labels with overlapping glyphs. Fix collision algorithm for the line labels with vertical shift. (1650)
    • Fix flickering when a vector layer is added on top of a raster layer. (1650)
    • Fix a rare case when black rectangles appear instead of the images of symbol layers. (1650)
    • Fix tiles disappearing when high pitch is used and atmosphere is turned on and off. (1650)
    • Fixes an issue which prevents the usage of tile cache when changing zoom levels. (1650)
    • Relax LOD requirements for maps with insets and zero terrain exaggeration. (1650)
    • Make CameraManager.setCamera method exception free. (1650)
    • Fix black holes in the globe view when edge insets are used. (1650)
    • Fix elevation of pole geometry when exaggerated terrain is used. (1650)
    • Fix a bug in cameraForGeometry returning incorrect camera options when pitch > 0. (1650)

    Dependencies

    • Bump gl-native to v10.8.0, common to v23.0.0. (1650)
    Source code(tar.gz)
    Source code(zip)
  • v10.8.0-rc.1(Aug 24, 2022)

    10.8.0-rc.1 August 24, 2022

    Bug fixes 🐞

    • Try recreate EGL surface when it throws exception. (1589)
    • Fix MapboxMap extension plugin functions throwing exceptions. (1591)
    • Fix concurrent modification exception when using widgets. (1597)
    • Relax LOD requirements for maps with insets and zero terrain exaggeration, leading to more content shown in easily readable map areas. (1623)
    • Make CameraManager.setCamera method exception free. In cases when incorrect CameraOptions are provided, error would be logged. (1623)
    • Fix black holes in the globe view when edge insets are used. (1623)

    Dependencies

    Bump gl-native to v10.8.0-rc.1 and common to v23.0.0-rc.2. (1623)

    Source code(tar.gz)
    Source code(zip)
  • v10.8.0-beta.1(Aug 11, 2022)

    10.8.0-beta.1 August 11, 2022

    Features ✨ and improvements 🏁

    • Introduce a callback to be invoked when the device compass sensors need to be re-calibrated. (1513)
    • Add support for LocationComponentSettingsInterface.pulsingMaxRadius to follow location's accuracy radius. (1561)

    Bug fixes 🐞

    • Support altitude interpolation in location component, and pass through GPS altitude information from the DefaultLocationProvider. (1478)
    • Fix edge cases for renderer that could result in map not rendered. (1538)
    • Fix onAnnotationDragStarted event is still fired when annotation is not draggable. (1552)
    • Fix camera flying away when pitching. (1560)
    • Deliver style to the plugin registry on map start if a new one was loaded after map stop. (1558)
    • Fix default viewport bearing transition doesn't follow shortest path. (1541)
    • Fix OnFpsChangedListener listener to count number of frames rendered over the last second instead of immediate time for render call. (1477)
    • Fix MapView.setMaximumFps method to apply exact FPS value for rendering the map. (1477)
    • Fix a bug in cameraForGeometry returning incorrect camera options when pitch > 0. (1568)
    • Fix Android memory leak when destroying platform view annotation manager. (1568)
    • Fix style getters for terrain, light and atmosphere resetting properties. (1573)
    • Fix possible ANR when destroying renderer. (1567)
    • Fix elevation of pole geometry when exaggerated terrain is used. (1574)
    • Fix MapSurface#surfaceChanged to update dimensions for plugins. (1575)

    Dependencies

    Bump gl-native to v10.8.0-beta.2 and common to v23.0.0-beta.1. (1574, 1568)

    Source code(tar.gz)
    Source code(zip)
  • extension-androidauto-v0.2.0(Aug 9, 2022)

    0.2.0 August 9, 2022

    Bug fixes 🐞

    • Destroy previous surface when new surface becomes available. This adds better support for androidx.car.app:app-automotive. (#1509)

    Dependencies

    • Android Auto car library androidx.car.app:app:1.1.+
    • Supports any version of Mapbox Maps 10.+
    Source code(tar.gz)
    Source code(zip)
  • android-v10.7.0(Jul 28, 2022)

    10.7.0 July 29, 2022

    Changes since Mapbox Maps SDK for Android 10.6.0

    Breaking changes ⚠️

    • Remove deprecated FollowPuckViewportStateOptions.animationDurationMs from experimental viewport plugin. (1421)
    • Remove experimental ModelLayer APIs. (1545)

    Features ✨ and improvements 🏁

    • Optimise the bearing update frequency for the location puck animator. (1398)
    • Use orientation model source property to update the 3D puck's bearing, as it is more efficient than updating the model-rotation layer property. (1407)
    • Optimize MapboxMap.loadStyle() to apply images and models earlier. 1378
    • Remove MapboxExperimental annotation from viewport plugin and promote viewport plugin as stable API. (1425)
    • Introduce addRendererSetupErrorListener/removeRendererSetupErrorListener methods for MapView and MapSurface to listen to renderer setup errors and give opportunity to control some edge cases. (1427)
    • Introduce transition properties for atmosphere and terrain. (1451)
    • Enable main thread checking on the map/style object when running applications in debug build. This utility class will crash the application if these objects are accessed from a worked thread. It's required to call these object functions on the main thread, otherwise you can hit edge case crashes. This configurations is advised but can be opted out with a Manifest metadata entry of com.mapbox.maps.ThreadChecker and corresponding false value. (1316).
    • Introduce view annotation ViewAnnotationManager.setViewAnnotationUpdateMode / ViewAnnotationManager.getViewAnnotationUpdateMode API with following synchronization modes: MAP_SYNCHRONIZED (used by default) and MAP_FIXED_DELAY. (1415)
    • Introduce FillExtrusionLayer.fillExtrusionAmbientOcclusionIntensity and FillExtrusionLayer.fillExtrusionAmbientOcclusionRadius properties for FillExtrusionLayer. (1458)
    • Introduce PointAnnotation.textLineHeight and deprecated PointAnnotationManager.textLineHeight, as text-line-height is data-driven property now. (1458)
    • Method MapboxMap.cameraForCoordinates now allows to ignore edges of framing box dynamically depending on the position of the principal point of the camera. (1543)
    • Synchronize volatile data (like traffic tiles) in multi-map environment. Decrease network traffic. (1543)
    • Make uploading of large graphics data asynchronous to improve rendering speed in particular on zooming in/out. (1543)
    • Reuse single index buffer in symbol layer rendering. (1543)
    • Use shared index buffers per tile to reduce the time spent in the upload pass. (1543)
    • Reduce geometry on globe tile to increase rendering performance. (1543)
    • Improve rendering performance with deleting layer render data on a worker thread. (1543)
    • The deprecated Settings API is using the same non-persistent storage as the SettingsService API from Common SDK so that all settings consolidated in a single place. (1543)
    • Support using line-trim-offset property with pure line color. (1543)
    • Render cache and terrain can now have mipmapping enabled to reduce aliasing. (1543)
    • Fast ambient occlusion support for fill extrusion layer. (1543)
    • Add API to create tileset descriptor from a tilesets list. (1543)
    • Add API OfflineManager::createTilesetDescriptor(TileDescriptorOptionsForTilesets) to create tileset descriptor from a tilesets list. (1543)

    Bug fixes 🐞

    • Fix lifecycle edge cases not being handled properly by introducing internal ViewLifecycleOwner to have granular control over MapView's lifecycle. (1330)
    • Fix an issue when literal array expression is used as output inside the match expression. (1444)
    • Fix skipping gesture updates resulting in slower gestures on low-end devices. (#1440)
    • Fix excessive logs appearing sometimes after onStop lifecycle event. (1527)
    • Fix com.mapbox.maps.MapboxMapException crash on style load. (1532)
    • Avoid NaN when converting screen coordinates to geographical coordinates executed as part of gesture. 1491
    • Remove android.permission.WAKE_LOCK permission from the SDK. (1494)
    • Fixes a bug when map aligned symbol layers are placed on top of other layers if draping is active. (1543)
    • Fix tile flickering with globe on rapid zooming in/out. (1543)
    • Fixed cameraForCoordinateBounds method returning different values for the same input. (1543)
    • Fix setting exaggeration-transition property via setStyleTerrain API. (1543)
    • Fix SDK fragment format in turnstile user agent. (1543)
    • Fix view annotation occlusion issue when terrain enabled. (1543)
    • Fix symbol flickering issue when textAllowOverlap or iconAllowOverlap is true. (1543)
    • Fixes rendering issues with the globe on unsupported hardware by falling back to mercator projection. (1543)
    • Fixed feature states not being applied on new tiles when zoom doesn't change. (1543)
    • Disable MapBuffer OpenGL extension on PowerVR SGX 544MP GPUs to fix incorrect usage of unimplemented methods. (1543)
    • Fix incorrect image source rendering with terrain enabled. (1543)
    • Fix possible crash bug in image processing. CVE-2022-38216 (1543)
    • Fix some cpu-updated symbols being invisible in globe view. (1543)
    • Fix zoom constraining issue when the input maxZoom is smaller than the current minZoom value. (1543)
    • Fix crash on calling Query Rendered Features API from renderer thread before initialising the renderer. (1543)
    • Fix tile pre-fetching for the globe map projection. (1543)
    • Relayout tiles after recovering from Metal rendering errors. (1543)
    • Fix a bug where changing size of the map would lead map center getting changed as well. (1543)

    Dependencies

    Source code(tar.gz)
    Source code(zip)
  • android-v10.6.2(Jul 15, 2022)

    10.6.2 - July 15, 2022

    Dependencies

    • Bump gl-native to v10.6.2. (#1505)
      • Changelog
        • Bug fixes 🐞
          • Disable MapBuffer OpenGL extension on PowerVR SGX 544MP GPUs to fix incorrect usage of unimplemented methods
    • Bump telemetry to v8.1.5. (#1505) Also bumps WorkManager 2.7.1 that enforces compileSdk 31 or newer.
      • Changelog
        • Bug fixes 🐞
          • [libtelemetry] Bump workManagerVersion to 2.7.1, add JavaVersion.VERSION_1_8 to compileOptions https://github.com/mapbox/mapbox-events-android/pull/573
    Source code(tar.gz)
    Source code(zip)
  • android-v10.7.0-rc.1(Jul 14, 2022)

    10.7.0-rc.1 - July 14, 2022

    Features ✨ and improvements 🏁

    • Introduce experimental ModelLayer.modelCastShadows and LocationPuck3D.modelCastShadows property. (1480)
    • Add model-cast-shadows paint property to model layer to allow turning off shadow casting per model layer. (1497)
    • Reuse single index buffer in symbol layer rendering. (1497)
    • Use shared index buffers per tile to reduce the time spent in the upload pass. (1497)

    Bug fixes 🐞

    • Remove android.permission.WAKE_LOCK permission from the SDK. (1494)
    • Fix setting 'exaggeration-transition' property via 'setStyleTerrain' API. (1497)
    • Fix SDK fragment format in turnstile useragent. (1497)
    • Fix view annotation occlusion issue when Terrain enabled. (1497)
    • Fix symbol flickering issue when 'textAllowOverlap' or 'iconAllowOverlap' is true. (1497)
    • Fixes rendering issues with the globe on unsupported hardware by falling back to mercator projection. (1497)
    • Fixed feature states not being applied on new tiles when zoom doesn't change. (1497)
    • Disable MapBuffer OpenGL extension on PowerVR SGX 544MP GPUs to fix incorrect usage of unimplemented methods. (1497)
    • Avoid NaN when converting screen coordinates to geographical coordinates executed as part of gesture. #1491

    Dependencies

    • Bump telemetry to v8.1.5. (#1494) Also bumps WorkManager 2.7.1 that enforces compileSdk 31 or newer.
    • Bump gl-native to v10.7.0-rc.1, common to 22.1.0-rc.1. (#1497)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.6.1(Jul 7, 2022)

    10.6.1 - July 7, 2022

    Bug fixes 🐞

    • Fix an issue when literal array expression is used as output inside the match expression. (1444)
    • Fix possible crash bug due to image size overflow. CVE-2022-38216 (1482)
    • Remove android.permission.WAKE_LOCK permission from the SDK. (1482)

    Dependencies

    Source code(tar.gz)
    Source code(zip)
  • android-v10.7.0-beta.1(Jun 29, 2022)

    10.7.0-beta.1 - June 29, 2022

    Breaking changes ⚠️

    • Remove deprecated FollowPuckViewportStateOptions.animationDurationMs from experimental viewport plugin. (1421)

    Features ✨ and improvements 🏁

    • Optimise the bearing update frequency for the location puck animator. (1398)
    • Use orientation model source property to update the 3D puck's bearing, as it is more efficient than updating the model-rotation layer property. (1407)
    • Optimize MapboxMap.loadStyle() to apply images and models earlier. #1378
    • Remove MapboxExperimental annotation from viewport plugin and promote viewport plugin as stable API. (1425)
    • Introduce addRendererSetupErrorListener/removeRendererSetupErrorListener methods for MapView and MapSurface to listen to renderer setup errors and give opportunity to control some edge cases. (1427)
    • Introduce transition properties for atmosphere and terrain. (1451)
    • Enable main thread checking on the map/style object when running applications in debug build. This utility class will crash the application if these objects are accessed from a worked thread. It's required to call these object functions on the main thread, otherwise you can hit edge case crashes. This configurations is advised but can be opted out with a Manifest metadata entry of com.mapbox.maps.ThreadChecker and corresponding false value. (#1316).
    • Introduce view annotation ViewAnnotationManager.setViewAnnotationUpdateMode / ViewAnnotationManager.getViewAnnotationUpdateMode API with following synchronization modes: MAP_SYNCHRONIZED (used by default) and MAP_FIXED_DELAY. (1415)
    • Reduce geometry on globe tile to increase rendering performance. (#1462)
    • Improve rendering performance with deleting layer render data on a worker thread. (#1462)
    • Support using line-trim-offset property with pure line color. (#1462)
    • Render cache and Terrain can now have mipmapping enabled to reduce aliasing. (#1462)
    • Fast ambient occlusion support for fill extrusion layer. (#1462)
    • Refactor view annotation implementation to align map and annotation movement better when camera changes. (#1462)
    • Add API OfflineManager::createTilesetDescriptor(TileDescriptorOptionsForTilesets) to create tileset descriptor from a tilesets list. (#1462)
    • Implement shadow rendering support. (#1462)
    • Expose experimental shadow APIs for Light. #1447
    • Introduce FillExtrusionLayer.fillExtrusionAmbientOcclusionIntensity and FillExtrusionLayer.fillExtrusionAmbientOcclusionRadius properties for FillExtrusionLayer. (1458)
    • Introduce PointAnnotation.textLineHeight and deprecated PointAnnotationManager.textLineHeight, as text-line-height is data-driven property now. (1458)

    Bug fixes 🐞

    • Fix lifecycle edge cases not being handled properly by introducing internal ViewLifecycleOwner to have granular control over MapView's lifecycle. (1330)
    • Fix an issue when literal array expression is used as output inside the match expression. (1444)
    • Fix skipping gesture updates resulting in slower gestures on low-end devices. (#1440)
    • Fix incorrect image source rendering with terrain enabled. (#1462)
    • Fix possible crash bug in image processing. (#1462)
    • Fix some cpu-updated symbols being invisible in globe view. (#1462)
    • Add support for terrain transition properties. (#1462)
    • Fix zoom constraining issue when the input 'maxZoom' is smaller than the current 'minZoom' value. (#1462)
    • Fix crash on calling Query Rendered Features API from renderer thread before initialising the renderer. (#1462)
    • Fix tile pre-fetching for the globe map projection. (#1462)
    • Fix a bug where changing size of the map would lead map center getting changed as well. (#1462)

    Dependencies

    • Bump gl-native to v10.7.0-beta.1, common to 22.1.0-beta.1. (#1462)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.6.0(Jun 16, 2022)

    10.6.0 - June 16, 2022

    Changes since Mapbox Maps SDK for Android 10.5.0

    Breaking changes ⚠️

    • Remove deprecated (since v10.5.0) experimental methods MapboxMap.setMapProjection/MapboxMap.getMapProjection. Those methods should be replaced with setting projection as part of Style DSL to achieve the same behavior. (1420)

    Features ✨ and improvements 🏁

    • Enable support for incremental annotation processing. (#1323)
    • Make use of non-deprecated common Mapbox logger. (#1327)
    • Expose factory methods for high-level camera animators. (#1338)
    • Introduce map atmosphere and fog. Setting atmosphere and fog supports Style DSL as well. (#1344)
    • Introduce experimental 3D model support. (#1351)
    • Use a single shared buffer across all globe tiles to increase globe rendering performance. (#1351)
    • Re-introduce partial tile loading feature that decreases map load times. (#1351)
    • The TilesetDescriptorOptions.pixelRatio parameter is now passed to the TileStore and considered for the raster tile pack loading. This enables loading of a raster tilepacks for retina displays. (#1351)
    • Introduce pinchScrollEnabled configuration to enable/disable 2-finger map panning, default to true. (#1343)
    • Re-throw native exceptions jni::PendingJavaException as readable Java exceptions with detailed exception text. (#1363)
    • Add static MapView.isTerrainRenderingSupported() method to validate if 3D terrain rendering is supported on given device. (1368)
    • Optimize MapboxMap.loadStyle() to apply styling properties earlier. #1362
    • Update SDK name in attribution action sheet. (1375)
    • Introduce experimental ModelLayer API to render 3D models on the map. (#1369)
    • Minimise tiles relayout on camera zooming with globe view. Improve the overall performance and reduce latency of the cached tiles appearance. (#1396)
    • Add minimum and maximum range check for sky layer property sky-atmosphere-sun and sky-gradient-center. If the input is invalid, the default property value will be used. (#1396)
    • Share render data between vector render tiles referring to the same logical tile. (#1396)
    • Reduce geometry on globe tile to increase rendering performance. (#1432)

    Bug fixes 🐞

    • Enable two finger pan gesture. (#1280)
    • Fix a bug that scale bar is shorter than it should be; trigger invalidateScaleBar while updating settings to make scale keep the latest status. (#1336)
    • Keep the original animator owner for CameraAnimationsPlugin.playAnimatorsTogether and CameraAnimationsPlugin.playAnimatorsSequentially. (#1345)
    • Fix for momentary appearing of a lower zoom level tile labels during camera movement. (#1351)
    • Fix for location indicator not being rendered at the horizon when terrain is enabled. (#1351)
    • Fix for loading gltf models with interleaved buffers. (#1351)
    • Fix a bug that line-trim-offset input may lose precision via shader calculation. (#1359)
    • Add mercator scale factor to 3D location puck, so that the 3D puck size won't increase as latitude increases. (#1350
    • Fix a crash due to invalid focal point when panning the map. (#1364)
    • Fix compass is not showing in "edge-to-edge" mode. (1391)
    • Fix an unexpected request update delay for tiles taken from in-memory cache when minimumTileUpdateInterval is set. (#1396)
    • Fix a rare bug where some tiles would not show up correctly on globe. (#1396)
    • Fix a bug where features could be queried without cursor intersecting the globe. (#1396)
    • Fix view annotations disappearing on the globe. (#1396)
    • Fix symbols ignoring both collision and placement on the globe. (#1396)
    • Add anti-aliasing on the globe on low zoom levels. (#1396)
    • Fix globe controls when map orientation is something else than "north". (#1396)
    • Fix circle and heatmap layers not being aligned with globe's surface. (#1396)
    • Optimise the frequency to update location layer's visibility. (1399)
    • Fix the delay in the first appearance of the location puck. (1403)
    • Remove android.permission.GET_TASKS permission from the SDK. (1430)
    • Fix lag during night/day style switching when globe is enabled. (#1432)
    • Fix crash on globe symbol placement that happens during style change. (#1432)
    • Fix incorrect image source rendering with terrain enabled. (#1432)
    • Fix in-memory tile cache for non-geometry tiles when the map projection changes. Before, the tiles cached while the previous projection was active could not be used with the new projection active. (#1432)

    Dependencies

    • Bump Mapbox Android base library to v0.8.0. (#1323)
    • Bump gl-native to v10.6.0, common to 22.0.0. (#1432)
    • Bump telemetry to v8.1.3, android core to 5.0.2. (1430)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.6.0-rc.1(Jun 2, 2022)

    10.6.0-rc.1 June 2, 2022

    Features ✨ and improvements 🏁

    • Minimise tiles relayout on camera zooming with globe view. Improve the overall performance and reduce latency of the cached tiles appearance. (#1396)
    • Add minimum and maximum range check for sky layer property sky-atmosphere-sun and sky-gradient-center. If the input is invalid, the default property value will be used. (#1396)
    • Share render data between vector render tiles referring to the same logical tile. (#1396)

    Bug fixes 🐞

    • Fix compass is not showing in "edge-to-edge" mode. (1391)
    • Fix an unexpected request update delay for tiles taken from in-memory cache when minimumTileUpdateInterval is set. (#1396)
    • Fix a rare bug where some tiles would not show up correctly on globe. (#1396)
    • Fix a bug where features could be queried without cursor intersecting the globe. (#1396)
    • Fix view annotations disappearing on the globe. (#1396)
    • Fix symbols ignoring both collision and placement on the globe. (#1396)
    • Add anti-aliasing on the globe on low zoom levels. (#1396)
    • Fix globe controls when map orientation is something else than "north". (#1396)
    • Fix circle and heatmap layers not being aligned with globe's surface. (#1396)

    Dependencies

    • Bump gl-native to v10.6.0-rc.1, common to 22.0.0-rc.2. (#1396)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.6.0-beta.2(May 25, 2022)

    10.6.0-beta.2 May 25, 2022

    Features ✨ and improvements 🏁

    • Update SDK name in attribution action sheet. (1375)
    • Introduce experimental ModelLayer API to render 3D models on the map. (#1369)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.6.0-beta.1(May 19, 2022)

    10.6.0-beta.1 May 19, 2022

    Features ✨ and improvements 🏁

    • Enable support for incremental annotation processing. (#1323)
    • Make use of non-deprecated common Mapbox logger. (#1327)
    • Expose factory methods for high-level camera animators. (#1338)
    • Introduce map atmosphere and fog. Setting atmosphere and fog supports Style DSL as well. (#1344)
    • Introduce experimental 3D model support. (#1351)
    • Use a single shared buffer across all globe tiles to increase globe rendering performance. (#1351)
    • Re-introduce partial tile loading feature that decreases map load times. (#1351)
    • The TilesetDescriptorOptions.pixelRatio parameter is now passed to the TileStore and considered for the raster tile pack loading. This enables loading of a raster tilepacks for retina displays. (#1351)
    • Introduce pinchScrollEnabled configuration to enable/disable 2-finger map panning, default to true. (#1343)
    • Re-throw native exceptions jni::PendingJavaException as readable Java exceptions with detailed exception text. (#1363)
    • Add static MapView.isTerrainRenderingSupported() method to validate if 3D terrain rendering is supported on given device. (1368)
    • Optimize MapboxMap.loadStyle() to apply styling properties earlier. #1362

    Bug fixes 🐞

    • Enable two finger pan gesture. (#1280)
    • Fix a bug that scale bar is shorter than it should be; trigger invalidateScaleBar while updating settings to make scale keep the latest status. (#1336)
    • Keep the original animator owner for CameraAnimationsPlugin.playAnimatorsTogether and CameraAnimationsPlugin.playAnimatorsSequentially. (#1345)
    • Fix for momentary appearing of a lower zoom level tile labels during camera movement. (#1351)
    • Fix for location indicator not being rendered at the horizon when terrain is enabled. (#1351)
    • Fix for loading gltf models with interleaved buffers. (#1351)
    • Fix a bug that line-trim-offset input may lose precision via shader calculation. (#1359)
    • Add mercator scale factor to 3D location puck, so that the 3D puck size won't increase as latitude increases. (#1350
    • Fix a crash due to invalid focal point when panning the map. (#1364)

    Dependencies

    • Bump Mapbox Android base library to v0.8.0. (#1323)
    • Bump gl-native to v10.6.0-beta.3, common to 22.0.0-beta.1. (#1351, #1354, #1359)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.4.4(May 12, 2022)

  • android-v10.5.0(May 5, 2022)

    10.5.0 May 5, 2022

    Features ✨ and improvements 🏁

    • Make map projection part of the style-spec and introduce new methods StyleInterface.setProjection / StyleInterface.getProjection. Setting projection supports Style DSL as well. (#1255, #1314)
    • Automatic transition between the globe and mercator projection updated to appear visually more subtle. (#1315)
    • Avoid repeated tile loading from network (or repeated tile decompression when the tile is fetched from the cache database) and repeated vector tile data allocation and parsing when loading render tiles referring to the same logical tile. (#1315)
    • Switch to use shader to calculate the 'line-trim-offset' property update. (#1315)
    • Layer properties transitions performance improved if the layer is transitioning to the same constant value or if transitioning from/to data-driven property. (#1315)
    • New line layer paint property introduced: '{"line-trim-offset", [trim-start, trim-end]}', to take the line trim-off percentage range based on the whole line range [0.0, 1.0]. The property will only be effective when 'line-gradient' property is set. The line part between [trim-start, trim-end] will be marked as transparent to make a line gradient a vanishing effect. If either 'trim-start' or 'trim-end' offset is out of valid range, the default range [0.0, 0.0] will be set. (#1315)
    • Globe view controls revamped for more intuitive interaction with touch controls. (#1315)
    • OfflineRegion::getStatus() API added to get the completion status and the local size of the existing legacy offline regions. (#1315)
    • Refactor all Mapbox logs so that Logcat tag will always be 'Mapbox' allowing easier filtering. Previous log tag will become part of the log message now. (#1276)
    • Optimize how plugins handle settings changes. Call applySettings only when settings value changes. (#1189)
    • Add MapboxMap.isValid() and Style.isValid() methods. MapboxMap becomes invalid when MapView.onDestroy() is called. Style becomes invalid when MapView.onDestroy() is called or new style has been loaded. Accessing any method on invalid object will print an error log. Also unsubscribe map observers automatically when MapboxMap.onDestroy() is invoked. (1193) (1202 (1230) (1241))
    • Add MapboxMap.coordinateBoundsForCameraUnwrapped method for API consistency. (1222)
    • Add LocationIndicatorLayer.bearingTransition API to control transition of bearing property. (1207)
    • Add MapboxConcurrentGeometryModificationException with detailed information instead of ConcurrentModificationException that is thrown when GeoJson data is mutated. (1248)
    • Introduce line-trim-offset property for LineLayer. (1252)
    • Deprecate FollowPuckViewportStateOptions.animationDurationMs, the initial transition will be handled properly by the Viewport plugin internally. (1256, 1261, 1262)
    • Mark MapView.viewAnnotationManager as non-experimental meaning View Annotation API will not have breaking changes in upcoming minor releases. (1260)

    Bug fixes 🐞

    • Fix geojson missing updates with persistent layer after style change. (#1324)
    • Fix render tasks being skipped when creating the map that could lead to missing tiles. (#1304)
    • The legacy offline region observer instance is not unnecessarily retained inside the engine. #1315
    • Fix a bug of querying rendered feature for circle layer with map-pitch-alignment when the pitch is zero. #1315
    • Fix a bug where zooming was not possible with terrain enabled and exaggeration 0. #1315
    • Fix an issue where internal hsla() function was converted to an invalid rgba expression. #1315
    • Fix a bug that 'line-trim-offset' calculation did not property cover 'round' or 'square' line cap in line ends. #1315
    • Dispatched in-flight events will not be delivered if 'unsubscribe' is called before an event is delivered. #1315
    • Fix an issue where some of the visible tiles could be erroneously culled during transition between globe and mercator projection. #1315
    • Fixes issues where camera appears under terrain, or map gets bumpy repositioning after exaggeration change. #1315
    • Disable terrain rendering if GPU does not support Vertex Texture Fetch. #1315
    • Fixed a bug that occasionally prevents symbols from loading. #1315
    • Fixed a bug that causes line layers to flicker. #1325
    • Fix NaN latitude native crash rarely happening during MapboxMap.flyTo. (#1271)
    • Limit MapboxMap.pixelForCoordinate to the bounds of MapView. (#1226)
    • Fix PolygonAnnotation and PolylineAnnotation being distorted while dragging with 3D terrain. (#1223)

    Dependencies

    • Bump gl-native to v10.5.1, mapbox-common to v21.3.1 (#1315, #1325)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.4.3(Apr 27, 2022)

  • android-v10.5.0-rc.1(Apr 20, 2022)

    10.5.0-rc.1 April 20, 2022

    Features ✨ and improvements 🏁

    • Refactor all Mapbox logs so that Logcat tag will always be 'Mapbox' allowing easier filtering. Previous log tag will become part of the log message now. (#1276)
    • Avoid repeated tile loading from network (or repeated tile decompression when the tile is fetched from the cache database) and repeated vector tile data allocation and parsing when loading render tiles referring to the same logical tile. (#1282)
    • Switch to use shader to calculate the 'line-trim-offset' property update. (#1282)

    Bug fixes 🐞

    • Fix issue where internal hsla() function was converted to an invalid rgba expression. (#1282)
    • Fix a bug that 'line-trim-offset' calculation did not property cover 'round' or 'square' line cap in line ends. (#1282)
    • Fix NaN latitude native crash rarely happening during MapboxMap#flyTo. (#1271)
    • Limit MapboxMap#pixelForCoordinate to the bounds of MapView. (#1226)

    Dependencies

    • Bump gl-native to v10.5.0-rc.1, mapbox-common to v21.3.0-rc.2. (#1282)
    Source code(tar.gz)
    Source code(zip)
  • android-v10.4.2(Apr 13, 2022)

    Bug fixes 🐞

    • [tile store] Correctly decode compressed content if loaded from the cache. (#1279)
    • [tile store] Fixed issue that prevented data blobs larger than 1 MB to be transferred via the service. (#1279)

    Dependencies

    • Bump common to v21.2.1 (#1279)
    Source code(tar.gz)
    Source code(zip)
Owner
Mapbox
Mapbox is the location data platform for mobile and web applications. We're changing the way people move around cities and explore our world.
Mapbox
πŸƒ Organic Maps is an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MapsWithMe founders.

?? Organic Maps is an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MapsWithMe founders. No ads, no tracking, no data collection, no crapware.

Organic Maps 4.3k Dec 31, 2022
Android Maps Extensions is a library extending capabilities of Google Maps Android API v2.

Android Maps Extensions Library extending capabilities of Google Maps Android API v2. While Google Maps Android API v2 is a huge leap forward comapare

Maciej GΓ³rski 408 Dec 15, 2022
Maps application in Android Studio using the Maps SDK for android

Google-Maps-Application Maps application in Android Studio using the Maps SDK for android. This app was initially developed in Java, but then was conv

Kyle McInnis 0 Nov 30, 2021
Scale bar for Android Maps (Google Maps, OSM, MapBox, Yandex)

Map Scale View Scale view for any Android Maps SDK (not only Google Maps) Contributing I encourage you to participate in this project. Feel free to op

Stas Parshin 109 Nov 18, 2022
TileOverlay component for react-native-maps

TileOverlay component for react-native-maps

Joe Julik 1 Apr 10, 2022
malik dawar 87 Sep 18, 2022
An android app that uses Google Maps API and SDK to track a user's location and calculate the total distance travelled

Bike Rush is an android app that uses Google Maps API and SDK to track a user's location and calculate the total distance travelled by him or her along with time and average speed.

Ishant Chauhan 21 Nov 14, 2022
Google Maps Api test using marker rotation and routes.

Google Maps Api test using marker rotation and routes. Features βœ”οΈ Kotlin βœ”οΈ DI: Hilt βœ”οΈ Retrofit βœ”οΈ Gson βœ”οΈ View binding βœ”οΈ Coroutines βœ”οΈ AndroidX βœ”οΈ

Carlos Adan 39 Jul 15, 2022
Curve-Fit is an Android library for drawing curves on Google Maps

Curve-Fit Android library for drawing curves on Google Maps. This library uses Bezier cubic equation in order to compute all intermediate points of a

Sarweshkumar C R 63 Mar 7, 2021
Maps SDK for Android Utility Library

Maps SDK for Android Utility Library Description This open-source library contains utilities that are useful for a wide range of applications using th

Google Maps 3.4k Dec 30, 2022
Demo de uso de google maps en Android, charla para el GDG Chimbote

mapasbasico Demo de uso de google maps en Android, charla para el GDG Chimbote Puedes usar este proyecto como base para trabajar con mapas en Android.

Whiston Kendrick Borja Reyna 4 Sep 17, 2021
EasyRoutes allows you to easily draw routes through the google maps address api.

EasyRoutes EasyRoutes allows you to easily draw routes through the google maps address api. Note: You need to generate an API key from the google cons

Antonio Huerta Reyes 7 Jul 26, 2022
Membuat Custom Tooltip Marker Google Maps

Custom-Tooltip-Marker Membuat Custom Tooltip Marker Google Maps Tutorial Build with Android Studio https://youtu.be/E8ND0YThNiU Tutorial Build with St

Azhar Rivaldi 5 Feb 17, 2022
App usage tracker which maps your app usage to geo location.

Guilt Guilt is an inspiration from Meta (pun intended), it tracks the apps usage and maps it with geo location data where the app was last used. The a

null 6 Dec 28, 2022
An app to search nearby businesses on Google Maps & Add Grocery Items to List!

GoStore: Internship Program Project A mobile app is built where the user can search for his nearby locations based on his requirement. Whenever the us

null 7 Nov 28, 2022
Positional is a location information app for Android with Compass, Clock, Level, Sun and Moon and many other features.

Positional is a location based app that utilizes the device's GPS and fetches various details of the current latitude and longitude data like Altitude, Speed, Address and similar other information and show it in easily understandable format to the user. Alongside this main functionality of being a location app, Positional also provides a separate panel for Compass and Clock, and they serve their own purpose as their name suggests.

Hamza Rizwan 85 Dec 28, 2022
Dual Camera, IMU, and GPS data recorder for Android

Dual Camera, IMU, and GPS data recorder for Android

AUT 3D Vision 17 Oct 24, 2022
This project allows you to calculate the route between two locations and displays it on a map.

Google-Directions-Android This project allows you to calculate the direction between two locations and display the route on a Google Map using the Goo

Joel Dean 970 Dec 15, 2022
LocationPicker 2.1 0.4 Java - A simple and easy to way to pick a location from map

Introduction LocationPicker is a simple and easy to use library that can be integrated into your project. The project is build with androidx. All libr

Shivpujan yadav 61 Sep 17, 2022