Doku / Einrichtung / Android / TomTom

TomTom einrichten

Hier sind die Schritte zur Verwendung des TomTom Orbis Maps Display SDK aus MapConductor. Fügen Sie das dedizierte Maven-Repository hinzu und übergeben Sie den API-Schlüssel im Manifest.

MODULE
com.mapconductor:for-tomtom
API KEY
Erforderlich
VIEW
TomTomMapView
TIME
15 Minuten
Derselbe Anbieter, andere PlattformeniOSReact

Bevor Sie beginnen

Android-Entwicklungsumgebung (Android Studio)
Ein Konto im TomTom Developer Portal und ein API-Schlüssel für Orbis Maps
STEP 01

API-Schlüssel abrufen

Stellen Sie im TomTom Developer Portal einen API-Schlüssel für Orbis Maps aus.

STEP 02

TomTom-Repository hinzufügen

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

Abhängigkeiten hinzufügen

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

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

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

Schlüssel im Manifest schreiben

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>
ACHTUNG
Übergeben Sie secrets.properties nicht an die Versionskontrolle. Das Hinzufügen zu .gitignore verhindert Fehler. In CI wird es über andere sichere Wege wie Umgebungsvariablen übergeben.
STEP 05

Theme prüfen

Die TomTom-UI-Overlays (Logo, Kompass usw.) basieren auf AppCompat-Themes. Bei anderen Themes funktioniert die Darstellung zwar, aber es werden Warnlogs ausgegeben. Theme.AppCompat oder Theme.MaterialComponents werden empfohlen.

PRÜFEN

Was Sie sehen sollten

Fertig, wenn die Karte und Marker angezeigt werden.

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"),
            ),
        )
    }
}

Kartendesigns

TomTomMapDesign unterstützt die Standardstile von Orbis Maps.

TomTomMapDesign
Notes
Standard
Standardstil zur Anzeige
Driving
Für die Fahrt
Satellite
Satellitenbilder

Fehlerbehebung

Position der Kartendarstellung verschoben

  • MapConductor gibt MapOptions(renderToTexture = true) an. Dies liegt daran, dass die standardmäßige SurfaceView-Darstellung mit SubcomposeLayout von Compose kollidiert. Wenn Sie MapOptions selbst zusammenstellen, ist dieselbe Angabe erforderlich.

Build schlägt fehl

  • Prüfen Sie, ob die Koordinaten und die Version des Map SDK mit den Angaben im Versionskatalog übereinstimmen.
  • Prüfen Sie, ob die Repository-Definition in settings.gradle.kts vorhanden ist (wenn repositoriesMode FAIL_ON_PROJECT_REPOS ist, werden repositories im Modul ignoriert).
  • Wenn Sie mehrere Map SDKs gleichzeitig installiert haben, prüfen Sie mit ./gradlew :app:dependencies auf Konflikte zwischen den Abhängigkeiten.

Weiter

Marker, Polylinien, Polygone, Kreise, Ground Images, Raster-Layer und InfoBubble können alle über die gemeinsame API verwendet werden. Da TomTom kein natives Ziehen für Marker hat, verarbeitet MapConductor MotionEvents direkt, um das Ziehen zu implementieren. Dragbare Marker funktionieren sofort.