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.
Antes de empezar
Obtener la clave API
Emita una clave API para Orbis Maps en TomTom Developer Portal.
Agregar el repositorio de TomTom
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")
}
}
}Agregar dependencias
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")
}Escribir la clave en el manifiesto
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<application>
<meta-data
android:name="TOMTOM_API_KEY"
android:value="${TOMTOM_API_KEY}" />
</application>
</manifest>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.
@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.
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.