Docs / Setup / Android / TomTom

TomTom setup

How to drive the TomTom Orbis Maps Display SDK through MapConductor: add TomTom's Maven repository and pass the API key through the manifest.

MODULE
com.mapconductor:for-tomtom
API KEY
Required
VIEW
TomTomMapView
TIME
15 min
Same provider, other platformsiOSReact

Before you start

An Android development environment (Android Studio)
A TomTom Developer Portal account and an Orbis Maps API key
STEP 01

Get an API key

Issue an Orbis Maps API key in the TomTom Developer Portal.

STEP 02

Add the TomTom repository

settings.gradle.ktsKotlin
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        // TomTom Orbis Maps SDK repository
        maven {
            url = uri("https://repositories.tomtom.com/artifactory/maven")
        }
    }
}
STEP 03

Add the dependencies

app/build.gradle.ktsKotlin
dependencies {
    // TomTom Orbis Maps Display SDK
    implementation("com.tomtom.sdk.maps:map-display-standard:2.4.1")

    // MapConductor BOM pins every module below
    implementation(platform("com.mapconductor:mapconductor-bom:1.2.0"))

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-tomtom")
}
STEP 04

Put the key in the manifest

AndroidManifest.xmlXML
<manifest>
    <uses-permission android:name="android.permission.INTERNET" />

    <application>
        <meta-data
            android:name="TOMTOM_API_KEY"
            android:value="${TOMTOM_API_KEY}" />
    </application>
</manifest>
CAUTION
Never commit secrets.properties. Add it to .gitignore so it cannot slip in, and feed the value through environment variables (or another secure channel) in CI.
STEP 05

Check your theme

TomTom's UI overlays (logo, compass) expect an AppCompat-family theme. Other themes still render, but log a warning — prefer Theme.AppCompat or Theme.MaterialComponents.

VERIFY

What you should see

The setup is complete when the map and its marker render.

TestTomTom.ktJetpack Compose
@Composable
fun TestTomTom(modifier: Modifier = Modifier) {
    val mapState = rememberTomTomMapViewState(
        mapDesign = TomTomMapDesign.Standard,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(52.3676, 4.9041),
            zoom = 11.0,
        ),
    )

    TomTomMapView(state = mapState, modifier = modifier) {
        Marker(
            MarkerState(
                position = GeoPoint(52.3676, 4.9041),
                icon = DefaultMarkerIcon().copy(label = "Amsterdam"),
            ),
        )
    }
}

Map designs

TomTomMapDesign maps onto the Orbis Maps standard styles.

TomTomMapDesign
Notes
Standard
The standard browsing style
Driving
Tuned for driving
Satellite
Satellite imagery

Troubleshooting

The map draws in the wrong place

  • MapConductor passes MapOptions(renderToTexture = true) because the default SurfaceView path fights Compose's SubcomposeLayout measurement. If you build MapOptions yourself, keep that setting.

The build fails

  • Check that the map SDK coordinates and version match what your version catalog declares.
  • Make sure the repository is declared in settings.gradle.kts — with repositoriesMode set to FAIL_ON_PROJECT_REPOS, per-module repositories blocks are ignored.
  • If several map SDKs are present at once, look for dependency clashes with ./gradlew :app:dependencies.

Next

Markers, polylines, polygons, circles, ground images, raster layers and info bubbles all work through the shared API. TomTom has no native marker drag, so MapConductor implements it by handling MotionEvent directly — draggable markers just work.