Documentación / Configuración / Android / ArcGIS

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.

MODULE
com.mapconductor:for-arcgis
API KEY
Necesario
VIEW
ArcGISMapView / 2D
TIME
20 minutos
El mismo proveedor, otras plataformasiOSReact

Antes de empezar

Entorno de desarrollo de Android (Android Studio)
Cuenta de desarrollador de ArcGIS
Clave de API de ArcGIS
STEP 01

Obtener la clave de API

  1. Cree una cuenta de desarrollador de ArcGIS.
  2. Abra el ArcGIS Developer Dashboard.
  3. Cree una aplicación y emita una clave de API con los ámbitos necesarios.
STEP 02

Agregar el repositorio de Esri

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

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.

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

Agregar dependencias

ArcGIS también usa una BOM. También se necesita el toolkit para Compose.

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

Configurar el manifiesto y la clave

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>
        <!-- ArcGIS API Key -->
        <meta-data
            android:name="ARCGIS_API_KEY"
            android:value="${ARCGIS_API_KEY}" />
    </application>
</manifest>
secrets.propertiesProperties
ARCGIS_API_KEY=your_actual_arcgis_api_key_here
PRECAUCIÓN
No confirme secrets.properties en el control de versiones. Agregarlo a .gitignore ayuda a prevenir accidentes. En CI, páselo por una ruta segura diferente, como variables de entorno.
STEP 06

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.

MainActivity.ktKotlin
// In your Application class or MainActivity
// ArcGISEnvironment.setLicense("your_license_key_here") // Optional for basic use

VERIFICAR

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.

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

ArcGISDesign
Notes
Streets
Mapa de calles estándar
Imagery
Imagen satelital
Topographic
Mapa topográfico
OsmStandard
Estándar de OpenStreetMap
NavigationNight
Navegación nocturna
DarkGray / LightGray
Estilo sutil para mapas base para cargar datos

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.