Documentación / Configuración / Android / Google Maps

Configurar Google Maps

Aquí encontrará los pasos para usar el Google Maps SDK for Android desde MapConductor. Se trata todo, desde la obtención de la clave de API hasta la inyección de la clave con el Secrets Gradle Plugin y la visualización de GoogleMapView.

MODULE
com.mapconductor:for-googlemaps
API KEY
Necesario
VIEW
GoogleMapView
TIME
15 minutos
El mismo proveedor, otras plataformasiOSReact

Antes de empezar

Entorno de desarrollo de Android (Android Studio)
Cuenta de Google Cloud Console
El Maps SDK for Android está habilitado en el proyecto de Google Cloud.
STEP 01

Obtener la clave de API

  1. Acceda a Google Cloud Console.
  2. Cree un proyecto nuevo o elija uno existente.
  3. Habilite el Maps SDK for Android.
  4. Cree una clave de API en „Credenciales“.
  5. Limite la clave al nombre del paquete de la app y a la huella del certificado SHA-1.
Dado que los certificados de firma son diferentes para las compilaciones de depuración y de lanzamiento, debe registrar SHA-1 por separado.
STEP 02

Instalar el Secrets Gradle Plugin

Este es un mecanismo para no colocar la clave en el control de fuente. El complemento lee secrets.properties e inserta el valor en el marcador 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 03

Agregar dependencias

Agregue el propio Google Maps SDK y el módulo MapConductor a la app, y aplique el Secrets Gradle Plugin. La versión de MapConductor se decide de manera centralizada mediante la BOM.

app/build.gradle.ktsKotlin
plugins {
    // ... other plugins
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}

dependencies {
    // Google Maps SDK
    implementation("com.google.android.gms:play-services-maps:20.0.0")

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

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-googlemaps")
    // Optional: compose / icons / heatmap / marker-clustering / geojson / kml
}
STEP 04

Configurar el manifiesto y la clave

Escriba solo marcadores de posición en el manifiesto y coloque los valores reales en secrets.properties. El complemento los reemplaza en el momento de la compilación.

AndroidManifest.xmlXML
<manifest>
    <!-- Add location permissions -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application>
        <!-- Google Maps API Key -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="${GOOGLE_MAPS_API_KEY}" />
    </application>
</manifest>
secrets.propertiesProperties
GOOGLE_MAPS_API_KEY=your_actual_api_key
En las apps que no usan la ubicación, no es necesario ACCESS_*_LOCATION. Para obtener mosaicos, solo se requiere INTERNET.
PRECAUCIÓN
No confirme secrets.properties en el control de versiones. Si lo agrega a .gitignore, evitará accidentes. En CI, páselo por otra ruta segura, como variables de entorno.
STEP 05

Configurar ProGuard / R8 (si corresponde)

Si tiene habilitada la ofuscación, conserve las clases de Play Services Maps.

proguard-rules.proProGuard
# Google Play Services
-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }
-dontwarn com.google.android.gms.**

VERIFICAR

Lo que deberías ver

Compile y ejecute esta pantalla; si aparece el mapa y funcionan el zoom y el desplazamiento, la configuración está completa.

TestGoogleMaps.ktJetpack Compose
@Composable
fun TestGoogleMaps(modifier: Modifier = Modifier) {
    val mapState = rememberGoogleMapViewState(
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6762, 139.6503),
            zoom = 12.0,
        ),
    )

    // If the map appears, the setup is correct.
    GoogleMapView(modifier = modifier, state = mapState)
}

Diseños de mapa

GoogleMapDesign es una copia de los tipos de mapas de Google.

GoogleMapDesign
Notes
Normal
Mapa de carreteras normal (roadmap)
Satellite
Imágenes de satélite
Hybrid
Imágenes de satélite con carreteras y etiquetas
Terrain
Mapa topográfico
None
Sin mapa base

Solución de problemas

No aparece el mapa (pantalla gris)

  • Verifique si la clave de API en secrets.properties es correcta.
  • Verifique si Maps SDK for Android está habilitado en Google Cloud Console.
  • Verifique si las restricciones de la clave coinciden con el nombre del paquete real y el SHA-1.

Aparece un error de clave de API en el registro

  • Verifique el valor y la fecha de vencimiento de la clave.
  • Revise la configuración de restricciones en la consola.

La compilación falla

  • Verifique si las coordenadas y la versión del SDK del mapa coinciden con lo especificado en el catálogo de versiones.
  • Verifique si 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 GoogleMapView, puede escribir superposiciones como Marker, Polyline, Circle con la API común. Incluso si cambia el proveedor, esa parte del código no cambia.