markerChanged method

  1. @override
void markerChanged(
  1. Marker<T> marker
)
override

Notifies the datastore that a marker's properties have changed.

This method should be called when a marker's position, appearance, or other properties are modified after it has been added to the datastore. This allows the datastore to:

  • Update internal indexes or caches
  • Re-evaluate marker visibility or filtering
  • Trigger any necessary reprocessing

marker The marker that has been modified

Common Use Cases:

  • Marker position changes (animation, GPS updates)
  • Marker style or appearance changes
  • Marker data or label updates
  • Marker visibility state changes

Note: Consider calling requestRepaint if the changes affect the visual representation of the marker.

marker.position = newPosition;
datastore.markerChanged(marker);
datastore.requestRepaint();

Implementation

@override
void markerChanged(Marker<T> marker) {
  _CurrentMarkers<T>? currentMarkers = _currentMarkers;
  currentMarkers?._initializedMarkers.remove(marker);
  currentMarkers?._cachedMarkers.remove(marker);
  if (currentMarkers != null && marker.shouldPaint(currentMarkers.boundingBox, currentMarkers.zoomlevel)) {
    reinitOneMarker(currentMarkers, marker).then((value) {
      requestRepaint();
    });
  }
}