import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; /// Ein einziger, app-lebenslanger MapController statt einer pro /// PlanScreen-Mount neu erzeugten Instanz. /// /// Grund: Die Kopfleiste (AppShell/TopModeBar) liegt eine Ebene ueber /// PlanScreen und braucht fuer Suche/Home/Fit denselben Controller wie die /// Karte - ein PlanScreen-privates Feld waere von dort nicht erreichbar. /// Als Nebeneffekt (und in Wahrheit der wichtigere Punkt) bleibt die /// Kamera-Position/Zoom jetzt auch ueber einen Wechsel nach Fly und /// zurueck erhalten: flutter_map tastet einen extern uebergebenen /// MapController beim erneuten Mounten nicht an (siehe /// FlutterMap._setMapController()), anders als der bisherige Zustand, wo /// PlanScreens eigener Controller beim Verlassen des Plan-Modus komplett /// verworfen wurde. Entspricht damit auch besser dem HTML-Demonstrator, /// der nur eine einzige Leaflet-Instanz fuer die gesamte App kennt. final mapControllerProvider = Provider((ref) { final controller = MapController(); ref.onDispose(controller.dispose); return controller; });