Documentación / Configuración / Android / Mapbox

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.

MODULE
com.mapconductor:for-mapbox
API KEY
Token de acceso
VIEW
MapboxMapView
TIME
15 minutos
El mismo proveedor, otras plataformasiOSReact

Antes de empezar

Entorno de desarrollo de Android (Android Studio)
Cuenta de Mapbox
Token de acceso público (el que comienza con pk.)
STEP 01

Obtener token de acceso

  1. Cree una cuenta de Mapbox.
  2. Abra Access tokens en el Account Dashboard.
  3. Use el token público predeterminado o cree uno nuevo.
PRECAUCIÓN
No incruste tokens secretos (los que comienzan con sk.) en la aplicación. La aplicación usa tokens públicos.
STEP 02

Agregar el repositorio Maven de Mapbox

El Mapbox Maps SDK no está en Maven Central; se obtiene del repositorio propio de Mapbox.

settings.gradle.ktsKotlin
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")
        }
    }
}
STEP 03

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.

(root)/build.gradle.ktsKotlin
plugins {
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}
STEP 04

Agregar dependencias

MapConductor se compila para la variante NDK27.

app/build.gradle.ktsKotlin
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")
}
STEP 05

Configurar el manifiesto y el token

AndroidManifest.xmlXML
<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>
secrets.propertiesProperties
MAPBOX_ACCESS_TOKEN=your_actual_access_token
PRECAUCIÓN
No haga commit de secrets.properties en el control de versiones. Agregarlo a .gitignore evita accidentes. En CI se pasa a través de otras vías seguras, como variables de entorno.

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.

TestMapbox.ktJetpack Compose
@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.