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.
Antes de empezar
Obtener la clave de API
- Acceda a Google Cloud Console.
- Cree un proyecto nuevo o elija uno existente.
- Habilite el Maps SDK for Android.
- Cree una clave de API en „Credenciales“.
- Limite la clave al nombre del paquete de la app y a la huella del certificado SHA-1.
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.
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}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.
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
}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.
<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>GOOGLE_MAPS_API_KEY=your_actual_api_key
Configurar ProGuard / R8 (si corresponde)
Si tiene habilitada la ofuscación, conserve las clases de Play Services Maps.
# 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.
@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.
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.