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
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.