mapbox / mapbox/mapbox-maps-flutter

Calling easeTo may be creating a memory leak

Offen
#809 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Dart
Sterne
380
Forks
204
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I have a handful of buttons on top of my Mapbox map that perform various functions with the map. One of them is a "3D view toggle". This function just calls easeTo. Im getting some strange behaviour after interacting with this button that I dont get at all if I dont touch it. Ive attached the code were using as well as a video of what this issue looks like.

Mapbox SDK Version: Seems to be all
Testing on iOS

```
void _togglePitch() {
// Prevent multiple simultaneous pitch changes
if (_isEasingInProgress) {
return;
}

// Ensures mapboxMap is not null before attempting to use it
if (mapboxMap == null) {
debugPrint('MapboxMap is not initialized');
return;
}

try {
// Set flag to prevent additional calls
setState(() {
_isEasingInProgress = true;
is3D = !is3D;
});

mapboxMap!.easeTo(
CameraOptions(pitch: is3D ? 75 : 0),
MapAnimationOptions(duration: 1000),
).then((_) {
// Reset the flag when animation is complete
setState(() {
_isEasingInProgress = false;
});
}).catchError((error) {
debugPrint('Error toggling pitch: $error');
setState(() {
is3D = !is3D;
_isEasingInProgress = false;
});
});
} catch (e) {
debugPrint('Error toggling pitch: $e');
// Optionally, reverts the state if the pitch change fails
setState(() {
is3D = !is3D;
_isEasingInProgress = false;
});
}
}
```

https://github.com/user-attachments/assets/153d13f6-0723-4a1c-b634-0aaa5388c295

![IMG_4938](https://github.com/user-attachments/assets/6b0a9337-484e-4301-91af-8531ad5bbff3)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit der bereitgestellten _togglePitch-Funktion und ihrem easeTo-Aufruf und reproduzieren Sie anschließend das gemeldete Verhalten unter iOS mithilfe des beigefügten Codes und Videos. Vergleichen Sie das Verhalten mit und ohne den 3D-Schalter über die angegebenen SDK-Versionen hinweg; abgeschlossen ist die Aufgabe, wenn das Speicherverhalten erklärt und eine minimale Reproduktion oder die bestätigte Ursache dokumentiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
dart, flutter
Bereich
mobile-dev
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.