Documentación / Configuración / Android / TomTom

Configurar TomTom

Aquí están los pasos para usar el TomTom Orbis Maps Display SDK desde MapConductor. Agregue el repositorio Maven dedicado y pase la clave API en el manifiesto.

MODULE
com.mapconductor:for-tomtom
API KEY
Obligatorio
VIEW
TomTomMapView
TIME
15 minutos
El mismo proveedor, otras plataformasiOSReact

Antes de empezar

Entorno de desarrollo de Android (Android Studio)
Una cuenta en TomTom Developer Portal y una clave API para Orbis Maps
STEP 01

Obtener la clave API

Emita una clave API para Orbis Maps en TomTom Developer Portal.

STEP 02

Agregar el repositorio de TomTom

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

Agregar dependencias

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

Escribir la clave en el manifiesto

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>
PRECAUCIÓN
No consiga secrets.properties al control de versiones. Agregarlo a .gitignore previene accidentes. En CI, páselo por otra ruta segura como variables de entorno.
STEP 05

Verificar el tema

Las superposiciones de IU de TomTom (logotipo, brújula, etc.) asumen temas de la familia AppCompat. Con otros temas, el dibujo funciona, pero aparecen registros de advertencia. Se recomienda Theme.AppCompat o Theme.MaterialComponents.

VERIFICAR

Lo que deberías ver

Está completo cuando aparece el mapa y los marcadores.

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

Diseños de mapa

TomTomMapDesign admite los estándar de Orbis Maps.

TomTomMapDesign
Notes
Standard
Estándar para visualización
Driving
Para conducir
Satellite
Imágenes satelitales

Solución de problemas

La posición del dibujo del mapa está desplazada

  • MapConductor especifica MapOptions(renderToTexture = true). Esto se debe a que el dibujo predeterminado de SurfaceView entra en conflicto con SubcomposeLayout de Compose. Si construye sus propios MapOptions, se requiere la misma especificación.

La compilación falla

  • Verifique que las coordenadas y la versión del Map SDK coinciden con las especificaciones del catálogo de versiones.
  • Verifique que la definición del repositorio esté en settings.gradle.kts (si repositoriesMode es FAIL_ON_PROJECT_REPOS, se ignoran los repositories del módulo).
  • Si tiene varios SDK de mapa al mismo tiempo, verifique si hay conflictos de dependencias con ./gradlew :app:dependencies.

Siguiente

Los marcadores, polilíneas, polígonos, círculos, imágenes de suelo, capas ráster e InfoBubble se pueden usar todos con la API común. Como TomTom no tiene arrastre nativo para marcadores, MapConductor procesa MotionEvents directamente para implementar el arrastre. Los marcadores arrastrables funcionan tal cual.