diff --git a/lib/src/controller.dart b/lib/src/controller.dart index 0e493b3..575e0c0 100644 --- a/lib/src/controller.dart +++ b/lib/src/controller.dart @@ -101,14 +101,16 @@ class StatefulMapController { void mutateMarker({String name, String property, dynamic value}) => _statefulMarkersState.mutate(name, property, value); + void removeStatefulMarker({@required String name}) => _statefulMarkersState.removeMarker(name); + + void removeStatefulMarkers() => _statefulMarkersState.removeMarkers(); /// The markers present on the map List get markers { - List markers = []; - markers - ..addAll(_markersState.markers) - ..addAll(_statefulMarkersState.markers); - return markers; + return [ + ..._markersState.markers, + ..._statefulMarkersState.markers, + ]; } /// The markers present on the map and their names diff --git a/lib/src/state/stateful_markers.dart b/lib/src/state/stateful_markers.dart index bf56944..c79376c 100644 --- a/lib/src/state/stateful_markers.dart +++ b/lib/src/state/stateful_markers.dart @@ -40,4 +40,16 @@ class StatefulMarkersState { _statefulMarkers[name].mutate(property, value); addStatefulMarker(name, _statefulMarkers[name]); } + + void removeMarker(String name) { + _statefulMarkers.remove(_statefulMarkers[name]); + _namedMarkers.remove(_namedMarkers[name]); + notify('updateMarkers', _statefulMarkers, removeMarker, MapControllerChangeType.markers); + } + + void removeMarkers() { + _statefulMarkers.clear(); + _namedMarkers.clear(); + notify('updateMarkers', _statefulMarkers, removeMarkers, MapControllerChangeType.markers); + } }