diff --git a/maplibre_gl/lib/src/controller.dart b/maplibre_gl/lib/src/controller.dart index 296ef89c1..ded8e4e63 100644 --- a/maplibre_gl/lib/src/controller.dart +++ b/maplibre_gl/lib/src/controller.dart @@ -47,6 +47,8 @@ typedef OnCameraTrackingDismissedCallback = void Function(); typedef OnCameraTrackingChangedCallback = void Function( MyLocationTrackingMode mode); +typedef OnCameraMoveCallback = void Function(CameraPosition cameraPosition); + typedef OnCameraIdleCallback = void Function(); typedef OnMapIdleCallback = void Function(); @@ -105,6 +107,7 @@ class MapLibreMapController extends ChangeNotifier { this.onMapIdle, this.onUserLocationUpdated, this.onCameraIdle, + this.onCameraMove, }) : _maplibrePlatform = maplibrePlatform { _cameraPosition = initialCameraPosition; @@ -190,6 +193,7 @@ class MapLibreMapController extends ChangeNotifier { _maplibrePlatform.onCameraMovePlatform.add((cameraPosition) { _cameraPosition = cameraPosition; + onCameraMove?.call(cameraPosition); notifyListeners(); }); @@ -280,6 +284,7 @@ class MapLibreMapController extends ChangeNotifier { final OnCameraTrackingDismissedCallback? onCameraTrackingDismissed; final OnCameraTrackingChangedCallback? onCameraTrackingChanged; + final OnCameraMoveCallback? onCameraMove; final OnCameraIdleCallback? onCameraIdle; final OnMapIdleCallback? onMapIdle; diff --git a/maplibre_gl/lib/src/maplibre_map.dart b/maplibre_gl/lib/src/maplibre_map.dart index a327ac210..e105ec5af 100644 --- a/maplibre_gl/lib/src/maplibre_map.dart +++ b/maplibre_gl/lib/src/maplibre_map.dart @@ -47,6 +47,7 @@ class MapLibreMap extends StatefulWidget { this.onMapLongClick, this.onCameraTrackingDismissed, this.onCameraTrackingChanged, + this.onCameraMove, this.onCameraIdle, this.onMapIdle, this.annotationOrder = const [ @@ -250,7 +251,10 @@ class MapLibreMap extends StatefulWidget { /// Called when the location tracking mode changes final OnCameraTrackingChangedCallback? onCameraTrackingChanged; - // Called when camera movement has ended. + /// Called when camera is moving. + final OnCameraMoveCallback? onCameraMove; + + /// Called when camera movement has ended. final OnCameraIdleCallback? onCameraIdle; /// Called when map view is entering an idle state, and no more drawing will @@ -354,6 +358,7 @@ class _MapLibreMapState extends State { onMapLongClick: widget.onMapLongClick, onCameraTrackingDismissed: widget.onCameraTrackingDismissed, onCameraTrackingChanged: widget.onCameraTrackingChanged, + onCameraMove: widget.onCameraMove, onCameraIdle: widget.onCameraIdle, onMapIdle: widget.onMapIdle, annotationOrder: widget.annotationOrder,