Skip to main content
usage

Interaction Options

InteractionOptions is flutter_map's, field for field. On the native maps the platform itself recognises the gestures, so each flag maps to its SDK switch:

FlagAndroid (Google Maps)iOS, macOS (MapKit)
draguiSettings.isScrollGesturesEnabledisScrollEnabled
pinchMoveisScrollGesturesEnabledDuringRotateOrZoomMapKit always pans during a pinch
pinchZoomisZoomGesturesEnabledisZoomEnabled — which also covers the scroll wheel and trackpad on macOS, so scrollWheelZoom cannot be told apart there
doubleTapZoomno separate switch: follows pinchZoomthe double-tap recognisers of MKMapView
doubleTapDragZoompart of the zoom gesturesthe one-finger zoom recogniser
rotateisRotateGesturesEnabledisRotateEnabled
flingAnimationoff: the core stops the native momentum as the last pointer goes upsame

Disable everything with InteractiveFlag.none, combine with flutter_map's InteractiveFlag values.

Keyboard and cursor​

keyboardOptions and cursorKeyboardRotationOptions are handled by the core on every backend — arrow keys, WASD, QE, RF and the rotation key with the pointer — with flutter_map's velocities. The native maps receive the resulting camera moves like any other programmatic move.

flutter_map-only tuning​

The thresholds and win gestures (rotationThreshold, pinchZoomWinGestures, …), scrollWheelVelocity, the double-tap durations and curves, and flingAnimationDampingRatio tune flutter_map's own gesture engine. On the native maps the platform recognises the gestures, so they only apply on the flutter_map backend (web, Windows, Linux, tests).

Scrolling across the world​

The native base maps wrap around the world horizontally by themselves — no option to enable, no camera boundary to lift. Layer objects (markers, shapes) appear once, at their coordinates.