Files
SnapAndSolve/docs/FeatureRatingSystem.md
si2503 8342723e09 - Dokumentation
- Bereinigung von Code
2026-02-13 10:33:21 +01:00

3.4 KiB

FeatureRatingSystem

Übersicht

Das FeatureRatingSystem enthält Komponenten zur detaillierten Anzeige von gemeldeten Straßenschäden. Es ermöglicht Nutzern, Informationen und Fotos zu einem Schaden einzusehen und diesen über ein Community-Rating-System zu validieren.


Methoden

1. FeatureInfoDialog

Composable Function

Ein modaler UI-Dialog, der zur Anzeige von Objektdaten eines ArcGISFeature dient.

Zweck

Visualisierung von Sachdaten (Attribute), das asynchrone Laden von Bildanhängen und die Bereitstellung einer Schnittstelle für Nutzerinteraktionen (Bewertungen).

Parameter

Parameter Typ Beschreibung
feature ArcGISFeature? Das ArcGIS-Objekt, dessen Daten angezeigt werden.
onDismiss () -> Unit Callback zum Schließen des Dialogs.
onRate (ArcGISFeature, Boolean) -> Unit Callback, der ausgelöst wird, wenn ein Nutzer eine Bewertung abgibt.

Interne Zustandsvariablen (State)

  • photoBitmaps (List<ImageBitmap>): Speichert die dekodierten Bilder, die aus den Feature-Attachments geladen wurden.
  • isLoadingPhotos (Boolean): Statusindikator, der den Ladevorgang der Anhänge steuert.

Funktionsweise

  1. Initialisierung: Beim Start (LaunchedEffect) wird geprüft, ob das Feature vollständig geladen ist.
  2. Attachment-Download: Die Funktion ruft fetchAttachments() auf. Für jeden Anhang werden die Rohdaten (fetchData) geladen.
  3. Bildverarbeitung: Die Byte-Arrays werden mittels BitmapFactory dekodiert und in ImageBitmap konvertiert, um sie in Compose anzuzeigen.
  4. UI-Rendering: Die Attribute Typ und Beschreibung werden zusammen mit den Bildern in einer scrollbaren Card dargestellt.

2. updateFeatureRating

Extension Function (suspend)

Eine Erweiterungsfunktion für das MapViewModel, die die Geschäftslogik für das Bewertungssystem kapselt.

Zweck

Persistente Aktualisierung des Community-Zählers eines Schadens in der ArcGIS Online Feature Layer Table.

Parameter

Parameter Typ Beschreibung
feature ArcGISFeature Das zu bewertende Feature-Objekt.
isPositive Boolean true für eine Bestätigung (+1), false für eine Abmilderung (-1).
context Context Erforderlich für die Anzeige von UI-Feedback (Toasts).

Logik-Ablauf

  1. Wertberechnung: Extrahiert das Attribut communitycounter. Erhöht oder verringert den Wert, wobei ein Minimum von 0 sichergestellt wird.
  2. Lokale Aktualisierung: Setzt den neuen Wert im Attribut-Dictionary des Features und ruft updateFeature() auf der ServiceFeatureTable auf.
  3. Remote-Synchronisation: Mittels applyEdits() werden die Änderungen an den ArcGIS-Server gesendet.
  4. Feedback: Informiert den Nutzer via Toast und SnackBar über den Erfolg oder Fehler der Operation.

Datenbank-Attribute (ArcGIS Schema)

  • Typ: Identifikator für die Schadensart.
  • Beschreibung: Optionaler Freitext des Erstellers.
  • communitycounter: Ganzzahliger Wert zur Speicherung der Community-Validierungen.

Fehlerbehandlung

  • Bild-Dekodierung: Schlägt das Laden eines Bildes fehl, wird der Fehler geloggt, aber der Dialog bleibt funktionsfähig.
  • Netzwerk-Synchronisation: Bei Fehlern während applyEdits wird eine Fehlermeldung ausgegeben, um den Nutzer über mangelnde Konnektivität zu informieren.