Doku / Einrichtung / Android / ArcGIS

ArcGIS einrichten

Anleitung zum Verwenden des ArcGIS Maps SDK for Kotlin über MapConductor. Fügen Sie das Esri-Repository hinzu und übergeben Sie den API-Schlüssel über das Manifest. Sowohl 2D- als auch 3D-Ansichten werden unterstützt.

MODULE
com.mapconductor:for-arcgis
API KEY
Erforderlich
VIEW
ArcGISMapView / 2D
TIME
20 Minuten
Derselbe Anbieter, andere PlattformeniOSReact

Bevor Sie beginnen

Android-Entwicklungsumgebung (Android Studio)
ArcGIS-Entwicklerkonto
ArcGIS-API-Schlüssel
STEP 01

API-Schlüssel abrufen

  1. Erstellen Sie ein ArcGIS-Entwicklerkonto.
  2. Öffnen Sie das ArcGIS Developer Dashboard.
  3. Erstellen Sie eine Anwendung und geben Sie einen API-Schlüssel mit den erforderlichen Bereichen aus.
STEP 02

Esri-Repository hinzufügen

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

Secrets Gradle Plugin installieren

Mechanismus, um zu vermeiden, dass der Schlüssel in die Quellcodeverwaltung gelangt. Das Plug-in liest secrets.properties und fügt den Wert beim Build in die Platzhalter in AndroidManifest.xml ein.

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

Abhängigkeiten hinzufügen

Auch auf ArcGIS-Seite wird eine BOM verwendet. Das Toolkit für Compose ist ebenfalls erforderlich.

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

Manifest und Schlüssel konfigurieren

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
ACHTUNG
Committen Sie secrets.properties nicht in die Versionsverwaltung. Wenn Sie es zu .gitignore hinzufügen, vermeiden Sie Fehler. In CI übergeben Sie es über einen anderen sicheren Weg, z. B. Umgebungsvariablen.
STEP 06

Lizenz konfigurieren (nur Produktion)

Für die reine grundlegende Kartenanzeige ist dies nicht erforderlich. Für die Produktionsverteilung konfigurieren Sie die Lizenz gemäß der Dokumentation von Esri.

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

PRÜFEN

Was Sie sehen sollten

Wenn die ArcGIS-Karte angezeigt wird und Zoomen, Schwenken und (bei 3D-Ansicht) Kippen funktionieren, sind Sie fertig.

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)
}

Kartendesigns

ArcGISDesign unterstützt Basiskarten von Esri. Dies ist nur eine Auswahl, tatsächlich gibt es noch weitere Konstanten.

ArcGISDesign
Notes
Streets
Standard-Straßenkarte
Imagery
Satellitenbild
Topographic
Topografische Karte
OsmStandard
OpenStreetMap-Standardstil
NavigationNight
Nachtnavigation
DarkGray / LightGray
Dezenter Stil für Grundkarten zum Anzeigen von Daten

Fehlerbehebung

Karte wird nicht geladen

  • Überprüfen Sie, ob der API-Schlüssel in secrets.properties korrekt ist.
  • Überprüfen Sie im Dashboard, ob der Schlüssel über die erforderlichen Bereiche verfügt.

Lizenzfehler tritt auf

  • Für die Produktionsverteilung konfigurieren Sie die Lizenz gemäß der Dokumentation von Esri.

Der Build schlägt fehl

  • Überprüfen Sie, ob Koordinaten und Version des Map SDK mit den Angaben im Versionskatalog übereinstimmen.
  • Überprüfen Sie, ob die Repository-Definition in settings.gradle.kts vorhanden ist (wenn repositoriesMode auf FAIL_ON_PROJECT_REPOS eingestellt ist, werden die repositories auf Modulseite ignoriert).
  • Wenn mehrere Karten-SDKs gleichzeitig eingebunden sind, prüfen Sie mit ./gradlew :app:dependencies, ob es Abhängigkeitskonflikte gibt.

Weiter

ArcGISMapView ist für 3D, ArcGISMapView2D für 2D. Da beide dasselbe Zustandsobjekt nutzen, können sie zur Laufzeit umgeschaltet werden.