HERE einrichten
Schritte zur Verwendung des HERE SDK (voraussichtlich Explore Edition) mit MapConductor. Da das HERE SDK nicht über Maven, sondern als AAR verteilt wird, sind Schritte erforderlich, um Dateien im Projekt zu platzieren.
Bevor Sie beginnen
Bereitstellen der Anmeldedaten und des AAR
- Erstellen Sie ein HERE Developer-Konto.
- Erstellen Sie im HERE Developer Portal ein Projekt.
- Generieren Sie die Access Key ID und das Secret.
- Laden Sie das AAR des HERE SDK Explore Android herunter. Es funktioniert mit der Serie 4.26.
AAR im Projekt platzieren
Platzieren Sie das AAR im libs/-Verzeichnis des Projekts. Stellen Sie sicher, dass der Dateiname exakt mit dem Namen übereinstimmt, auf den von Gradle verwiesen wird.
<project root>/
└── libs/
└── heresdk-explore-android-4.27.2.0.309975.aarSecrets Gradle Plugin hinzufügen
Ein Mechanismus, um zu vermeiden, dass Schlüssel in der Quellverwaltung abgelegt werden. Das Plugin liest secrets.properties und fügt die Werte beim Erstellen in die Platzhalter in AndroidManifest.xml ein.
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}Abhängigkeiten hinzufügen
Das AAR wird als lokale Datei referenziert. Passen Sie den Dateinamen an die tatsächlich platzierte Datei an.
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// HERE SDK (local AAR).
// This build number is only the one MapConductor is developed against —
// use the file name of the AAR you downloaded.
implementation(
files("${rootProject.projectDir}/libs/heresdk-explore-android-4.27.2.0.309975.aar")
)
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-here")
}Manifest und Anmeldedaten konfigurieren
HERE verwendet sowohl ID als auch Secret. Beide werden über Platzhalter übergeben.
<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>
<!-- HERE Access Key ID -->
<meta-data
android:name="HERE_ACCESS_KEY_ID"
android:value="${HERE_ACCESS_KEY_ID}" />
<!-- HERE Access Key Secret -->
<meta-data
android:name="HERE_ACCESS_KEY_SECRET"
android:value="${HERE_ACCESS_KEY_SECRET}" />
</application>
</manifest>HERE_ACCESS_KEY_ID=your_actual_here_access_key_id HERE_ACCESS_KEY_SECRET=your_actual_here_access_key_secret
PRÜFEN
Was Sie sehen sollten
Wenn die Karte von HERE angezeigt wird, sind Sie fertig.
@Composable
fun TestHere(modifier: Modifier = Modifier) {
val mapState = rememberHereMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
HereMapView(modifier = modifier, state = mapState)
}Kartendesigns
HereMapDesign unterstützt die Map-Schemes von HERE. Es sind verschiedene Stile für verschiedene Zwecke verfügbar, wie z. B. Tag/Nacht oder für die Logistik.
Fehlerbehebung
Karte wird nicht geladen
- Überprüfen Sie, ob die Access Key ID und der Secret in `secrets.properties` korrekt sind.
- Überprüfen Sie, ob der Schlüssel gültig ist (nicht deaktiviert).
Es wird gemeldet, dass die AAR nicht gefunden wurde
- Überprüfen Sie, ob die AAR in `libs/` vorhanden ist.
- Überprüfen Sie, ob der Dateiname mit der Angabe in `build.gradle.kts` exakt übereinstimmt (einschließlich der Versionsnummer).
Build schlägt fehl
- Überprüfen Sie, ob die Koordinaten und die Version des Map SDK mit der Angabe im Versionskatalog übereinstimmen.
- Überprüfen Sie, ob die Repository-Definition in `settings.gradle.kts` vorhanden ist (wenn `repositoriesMode` auf `FAIL_ON_PROJECT_REPOS` gesetzt ist, werden `repositories` auf Modulebene ignoriert).
- Wenn mehrere Map SDKs gleichzeitig installiert sind, überprüfen Sie mit `./gradlew :app:dependencies`, ob keine Abhängigkeitskonflikte vorliegen.
Weiter
Wenn `HereMapView` erscheint, können Sie Overlays über dieselbe allgemeine API wie bei anderen Anbietern stapeln.