Aus öffentlichen Paketdaten erstellte Orientierung.
map_controller ist ein Flutter-Paket, das die Verwaltung von Kartenobjekten wie Markierungen, Linien und Polygonen vereinfacht. Es bietet einen zentralen Controller zur Handhabung von Interaktionen, Aktualisierungen und Zustandsänderungen für Kartendaten und verbessert so die Codeorganisation und Leistung. Ideal für Anwendungen mit dynamischer Kartendarstellung, integriert sich nahtlos mit Flutter-Kartenkomponenten. Das Paket wird von 'here' gepflegt und über pub.dev verfügbar. Der Quellcode ist auf GitHub offen zugänglich, was Transparenz und Community-Beiträge ermöglicht.
Anwendungsfälle
Dynamische Marker-Verwaltung
Echtzeit-Routenvisualisierung
interaktive Polygonüberlagerungen
Kartendaten-Synchronisierung
Standortbasierte Benutzeroberflächenkomponenten
Hauptmerkmale
Zentralisierte Kartenstatussteuerung
Unterstützung für Marker, Linien und Polygone
Effiziente Aktualisierungsmechanismen
Einfache Integration mit Flutter-Karten
Open Source und aktiv gepflegt
Geeignet für
Entwickler, die interaktive Karten erstellen
Anwendungen mit Echtzeit-Standortverfolgung
Projekte, die komplexe Kartenüberlagerungen erfordern
Teams, die sauberen, wartbaren Code priorisieren
Flutter-Anwendungen mit geospatialen Daten
Hinweise
Erfordert kompatible Implementierung des Karten-Widgets
Eingeschränkte plattformspezifische Anpassung
Keine integrierte Kartenanzeige (abhängig von externem Karten-Widget)
Möglicherweise sind zusätzliche Abhängigkeiten für erweiterte Funktionen erforderlich
Die Dokumentation könnte detaillierter sein
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
Map controller
Stateful map controller for Flutter Map. Manage markers, lines and polygons.
import'dart:async';
import'package:flutter/material.dart';
import'package:flutter_map/flutter_map.dart';
import'package:latlong/latlong.dart';
import'package:map_controller/map_controller.dart';
class_MapPageStateextendsState<MapPage> {
MapController mapController;
StatefulMapController statefulMapController;
StreamSubscription<StatefulMapControllerStateChange> sub;
@overridevoidinitState() {
// intialize the controllers
mapController = MapController();
statefulMapController = StatefulMapController(mapController: mapController);
// wait for the controller to be ready before using it
statefulMapController.onReady.then((_) => print("The map controller is ready")));
/// [Important] listen to the changefeed to rebuild the map on changes:/// this will rebuild the map when for example addMarker or any method /// that mutates the map assets is called
sub = statefulMapController.changeFeed.listen((change) => setState(() {}));
super.initState();
}
@overrideWidgetbuild(BuildContext context) {
returnScaffold(
body: SafeArea(
child: Stack(children: <Widget>[
FlutterMap(
mapController: mapController,
options: MapOptions(center: LatLng(48.853831, 2.348722), zoom: 11.0),
layers: [
MarkerLayerOptions(markers: statefulMapController.markers),
PolylineLayerOptions(polylines: statefulMapController.lines),
PolygonLayerOptions(polygons: statefulMapController.polygons)
],
),
// ...
])),
);
}
@overridevoiddispose() {
sub.cancel();
super.dispose();
}
}
classMapPageextendsStatefulWidget{
@override_MapPageStatecreateState() => _MapPageState();
}