onPointerSignal method
Implementation
void onPointerSignal(PointerSignalEvent pointerSignal) {
// Handle mouse scroll events if the enableScrollWheel parameter is enabled
if (pointerSignal is PointerScrollEvent &&
mapState.options.enableScrollWheel &&
pointerSignal.scrollDelta.dy != 0) {
// Prevent scrolling of parent/child widgets simultaneously. See
// [PointerSignalResolver] documentation for more information.
GestureBinding.instance.pointerSignalResolver.register(pointerSignal,
(pointerSignal) {
pointerSignal as PointerScrollEvent;
final minZoom = mapState.options.minZoom ?? 0.0;
final maxZoom = mapState.options.maxZoom ?? double.infinity;
final newZoom = (mapState.zoom -
pointerSignal.scrollDelta.dy *
mapState.options.scrollWheelVelocity)
.clamp(minZoom, maxZoom);
// Calculate offset of mouse cursor from viewport center
final List<dynamic> newCenterZoom = _getNewEventCenterZoomPosition(
_offsetToPoint(pointerSignal.localPosition), newZoom);
// Move to new center and zoom level
mapState.move(newCenterZoom[0] as LatLng, newCenterZoom[1] as double,
source: MapEventSource.scrollWheel);
});
}
}