Java SDK

Current version: v5.3.0 View changelog

  • Global directions
  • Travel time matrix for multiple points
  • Geocoding
  • Map matching
  • Fastest route between multiple points
  • Static map images
  • Snap traces to road network
  • Geospatial analysis
  • Isochrones

The Mapbox Java SDK is an open source toolset for building projects that need directions, geocoding, static map images, geospatial calculations, and more. It provides convenient wrappers around Mapbox APIs for use in any Java application. This SDK does use AndroidX annotations but has no dependencies on the Android SDK API.

Available packages

Here are the current Java SDK dependencies that you can use in your Android or Java project.

GeoJSON: Java classes that model the GeoJSON spec.

implementation 'com.mapbox.mapboxsdk:mapbox-sdk-geojson:5.3.0'

Services: Convenient wrappers to interact with Mapbox APIs: Matrix, Geocoding, Tilequery, Optimization, Static Image, Map Matching, and Isochrone.

implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:5.3.0'

Turf: Runtime geospatial calculations.

implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:5.3.0'

Core: Color, text, and networking utility classes.

implementation 'com.mapbox.mapboxsdk:mapbox-sdk-core:5.3.0'

Installation

To start developing your application using the Mapbox Java SDK, you'll need to first decide which installation method works for you. The SDK is fully compatible with Android using Gradle and can also be included in a generic Java project using either Gradle or Maven. You can find all dependencies given below on MavenCentral.

Gradle

  1. Start Android Studio.
  2. Open up your application's app-level build.gradle file.
  3. Make sure that your project's minSdkVersion is set to API 14 or higher.
  4. In the dependencies block, add a new implementation dependency for the Java SDK package(s) you want in your project.
  5. Click Sync Project with Gradle Files near the toolbar in Android Studio.
Proguard

If your project is close or exceeds the 65k method count limit, you can mitigate this problem by specifying only the specific Mapbox Android Service APIs. See the selectively compiling APIs section below.

repositories {
    google()
}

dependencies {
    // Replace `DESIRED_JAVA_SDK_PACKAGE` with the
    // name of one of the packages listed at the top of this page.
    
    implementation 'com.mapbox.mapboxsdk:DESIRED_JAVA_SDK_PACKAGE:5.3.0'
    
    implementation 'androidx.annotation:annotation:1.0.0'
}

Maven

If your project is using Maven instead of Gradle, you can add the dependency inside your project's POM.xml file.

<dependency>
    <groupId>com.mapbox.mapboxsdk</groupId>
    <!-- Replace `DESIRED_JAVA_SDK_PACKAGE` with the name of one of the packages listed in the next section-->
    <artifactId>DESIRED_JAVA_SDK_PACKAGE</artifactId>
    <version>5.3.0</version>
</dependency>

Access tokens

You'll need to have a Mapbox access token if you plan to use any of the mapbox-sdk-services Mapbox APIs wrappers. An access token is not needed if you plan to use the Mapbox Java SDK's GeoJSON package, Turf package, or certain parts of the Core package. Learn more about how Mapbox access tokens work.

Support and contributions

Was this page helpful?