3.5 KiB
locationHelper
Übersicht
Dieses Modul stellt Hilfsfunktionen und Composables bereit, um die GPS-Standortbestimmung innerhalb der ArcGIS Maps SDK für Kotlin (Compose-Toolkit) zu verwalten. Es kümmert sich um die Prüfung und Abfrage von Android-Laufzeitberechtigungen sowie die Initialisierung des LocationDisplay.
1. LocationHelper (Klasse)
class LocationHelper(private val context: Context)
Eine Utility-Klasse zur Kapselung von Berechtigungsprüfungen.
Zweck
Zentralisierung der Logik für die Prüfung von Standortberechtigungen (ACCESS_COARSE_LOCATION und ACCESS_FINE_LOCATION).
Methoden
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
hasLocationPermissions() |
Boolean |
Gibt true zurück, wenn sowohl die grobe als auch die feine Standortberechtigung vom Nutzer erteilt wurde. |
2. setupLocationDisplay (Composable)
@Composable fun setupLocationDisplay(autoPanMode: LocationDisplayAutoPanMode): LocationDisplay
Die Haupt-Einstiegsfunktion für die Standortvisualisierung in einer MapView.
Zweck
Initialisiert das LocationDisplay-Objekt, setzt den Modus für die automatische Schwenkung der Karte (Auto-Pan) und startet die Datenquelle für Standortaktualisierungen.
Parameter
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
autoPanMode |
LocationDisplayAutoPanMode |
.Recenter |
Bestimmt das Verhalten der Kamera bei Standortänderung (z.B. Zentrieren oder Navigieren). |
Funktionsweise
- Initialisierung: Erzeugt ein
LocationDisplaymittelsrememberLocationDisplay(). - Berechtigungsprüfung: Nutzt den
LocationHelper, um den aktuellen Status zu prüfen. - Datenquelle starten:
- Sind Berechtigungen vorhanden: Startet die
dataSourcesofort viaLaunchedEffect. - Fehlen Berechtigungen: Ruft das Composable
RequestLocationPermissionsauf.
- Sind Berechtigungen vorhanden: Startet die
- Rückgabe: Liefert das konfigurierte Objekt an die übergeordnete
MapViewzurück.
3. RequestLocationPermissions (Privates Composable)
@Composable private fun RequestLocationPermissions(...)
Ein UI-Komponente zur Interaktion mit dem Android-Berechtigungssystem.
Zweck
Anforderung der erforderlichen Berechtigungen während der Laufzeit (Runtime Permissions).
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
context |
Context |
Android-Kontext für Toast-Meldungen. |
onPermissionsGranted |
() -> Unit |
Callback, der ausgeführt wird, wenn der Nutzer alle angeforderten Rechte bestätigt hat. |
Ablauf
- Nutzt
rememberLauncherForActivityResult, um auf die Antwort des Betriebssystems zu warten. - Fordert im
LaunchedEffectgleichzeitigACCESS_COARSE_LOCATIONundACCESS_FINE_LOCATIONan. - Erfolg: Ruft
onPermissionsGranted()auf, was in der Regel den Start des GPS-Tracking auslöst. - Ablehnung: Zeigt eine
Toast-Meldung an, um den Nutzer über die fehlende Funktionalität aufzuklären.
Verwendete Berechtigungen (Manifest)
Für die korrekte Funktion müssen folgende Tags in der AndroidManifest.xml vorhanden sein:
android.permission.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_COARSE_LOCATION
Architektur-Hinweis
Das Modul nutzt das ArcGIS Maps Compose Toolkit. Das zurückgegebene LocationDisplay wird normalerweise direkt in einer MapView Composable als Parameter übergeben:
MapView(
modifier = Modifier.fillMaxSize(),
arcGISMap = map,
locationDisplay = setupLocationDisplay()
)