Configurar ArcGIS
Instrucciones para usar el ArcGIS Maps SDK for Kotlin desde MapConductor. Agregue el repositorio de Esri y pase la clave de API a través del manifiesto. Puede utilizar vistas tanto en 2D como en 3D.
Antes de empezar
Obtener la clave de API
- Cree una cuenta de desarrollador de ArcGIS.
- Abra el ArcGIS Developer Dashboard.
- Cree una aplicación y emita una clave de API con los ámbitos necesarios.
Agregar el repositorio de Esri
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Esri public repository for ArcGIS Maps SDK
maven {
url = uri("https://esri.jfrog.io/artifactory/arcgis")
}
}
}Instalar Secrets Gradle Plugin
Mecanismo para no poner la clave en el control de fuentes. El complemento lee secrets.properties e inserta el valor 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
ArcGIS también usa una BOM. También se necesita el toolkit para Compose.
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// ArcGIS Maps SDK
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:300.1.0"))
implementation("com.esri:arcgis-maps-kotlin:300.1.0")
implementation("com.esri:arcgis-maps-kotlin-toolkit-geoview-compose")
implementation("com.esri:arcgis-maps-kotlin-toolkit-authentication")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-arcgis")
}Configurar el manifiesto y la clave
<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>
<!-- ArcGIS API Key -->
<meta-data
android:name="ARCGIS_API_KEY"
android:value="${ARCGIS_API_KEY}" />
</application>
</manifest>ARCGIS_API_KEY=your_actual_arcgis_api_key_here
Configurar la licencia (solo producción)
No es necesario para solo mostrar el mapa básico. Para la distribución de producción, configure la licencia siguiendo la documentación de Esri.
// In your Application class or MainActivity
// ArcGISEnvironment.setLicense("your_license_key_here") // Optional for basic useVERIFICAR
Lo que deberías ver
Si aparece el mapa de ArcGIS y funcionan el zoom, el desplazamiento y (en la vista 3D) la inclinación, ha terminado.
@Composable
fun TestArcGIS(modifier: Modifier = Modifier) {
val mapState = rememberArcGISMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
// ArcGISMapView is the 3D scene view; ArcGISMapView2D shares the same state.
ArcGISMapView(modifier = modifier, state = mapState)
}Diseños de mapa
ArcGISDesign es compatible con los mapas base de Esri. Los que se enumeran aquí son solo algunos; en realidad hay más constantes.
Solución de problemas
El mapa no se carga
- Verifique que la clave de API en secrets.properties sea correcta.
- Verifique en el Dashboard si la clave tiene los ámbitos necesarios.
Aparece un error de licencia
- Para la distribución de producción, configure la licencia siguiendo la documentación de Esri.
La compilación falla
- Verifique que las coordenadas y la versión del SDK del mapa coincidan 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, los repositories del lado del módulo se ignorarán).
- Si tiene varios SDK de mapas al mismo tiempo, verifique con ./gradlew :app:dependencies si hay conflictos de dependencias.
Siguiente
ArcGISMapView es para 3D, ArcGISMapView2D es para 2D. Dado que ambos comparten el mismo objeto de estado, se pueden cambiar en tiempo de ejecución.