Configurar Mapbox
Pasos para usar el Mapbox Maps SDK para Android con MapConductor. Mapbox se distribuye desde un repositorio Maven dedicado y se pasa el token de acceso a través del manifiesto.
Antes de empezar
Obtener token de acceso
- Cree una cuenta de Mapbox.
- Abra Access tokens en el Account Dashboard.
- Use el token público predeterminado o cree uno nuevo.
Agregar el repositorio Maven de Mapbox
El Mapbox Maps SDK no está en Maven Central; se obtiene del repositorio propio de Mapbox.
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Mapbox Maven repository
maven {
url = uri("https://api.mapbox.com/downloads/v2/releases/maven")
}
}
}Instalar Secrets Gradle Plugin
Un mecanismo para evitar poner claves en el control de código fuente. El complemento lee secrets.properties e inserta valores en los marcadores de posición de AndroidManifest.xml en el momento de la compilación.
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}Agregar dependencias
MapConductor se compila para la variante NDK27.
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// Mapbox Maps SDK (NDK27 variant)
implementation("com.mapbox.maps:android-ndk27:11.28.0")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-mapbox")
}Configurar el manifiesto y el token
<manifest>
<!-- Add internet and location permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
<!-- Mapbox Access Token -->
<meta-data
android:name="MAPBOX_ACCESS_TOKEN"
android:value="${MAPBOX_ACCESS_TOKEN}" />
</application>
</manifest>MAPBOX_ACCESS_TOKEN=your_actual_access_token
VERIFICAR
Lo que deberías ver
Si el mapa aparece con un estilo de Mapbox y funcionan el zoom, el desplazamiento y la rotación, ha terminado.
@Composable
fun TestMapbox(modifier: Modifier = Modifier) {
val mapState = rememberMapboxMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
MapboxMapView(modifier = modifier, state = mapState)
}Solución de problemas
El mapa permanece completamente blanco
- Verifique que el token en secrets.properties sea correcto y no haya expirado.
- Verifique que sea un token público que comienza con pk.
- Verifique que el alcance del token incluya maps:read.
No se pueden resolver las dependencias
- Verifique que el repositorio Maven de Mapbox esté en settings.gradle.kts.
- Verifique que haya especificado la variante NDK27 (com.mapbox.maps:android-ndk27).
La compilación falla
- Verifique que las coordenadas y la versión del SDK del mapa coincidan con lo especificado en el 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 repositorios del lado del módulo).
- Si tiene varios SDK de mapas al mismo tiempo, verifique si hay conflictos de dependencias con ./gradlew :app:dependencies.
Siguiente
Cuando aparece MapboxMapView, puede superponer capas como con otros proveedores. También puede especificar estilos que no sean de Mapbox.