# Other Options

## Interactivity Settings (`interactiveFlags`)

Takes an integer bitfield, which can be treated similar to enumerables. For example:

```dart
        InteractiveFlag.all & ~InteractiveFlag.rotate
```

allows/enables all interactions except for rotation (keeping the map at the heading specified by `rotation`).

The flags below are available:

<table><thead><tr><th width="214">Flag</th><th>Description</th></tr></thead><tbody><tr><td><code>all</code></td><td>Enables all interactions</td></tr><tr><td><code>none</code></td><td>Disables all interactions</td></tr><tr><td><code>drag</code></td><td>Enables panning with one finger</td></tr><tr><td><code>pinchMove</code></td><td>Enables panning with two or more fingers</td></tr><tr><td><code>flingAnimation</code></td><td>Enables fling animation when <code>drag</code>/<code>pinchMove</code> have enough 'Fling Velocity'</td></tr><tr><td><code>pinchZoom</code></td><td>Enables zooming with a pinch gesture</td></tr><tr><td><code>doubleTapZoom</code></td><td>Enables zooming with a double tap (prevents <code>onTap</code> from firing)</td></tr><tr><td><code>rotate</code></td><td>Enables rotating the map with a twist gesture</td></tr></tbody></table>

Use `&` for 'AND' logic and `~` for 'NOT' logic. Combining these two gates, as shown in the example, can lead to many combinations, each easy to put together.

Defaults to enabling all interactions (`all`).

## Scroll Wheel Settings (`enableScrollWheel` & `scrollWheelVelocity`)

Used together to enable scroll wheel scrolling, and set it's sensitivity/speed.

The first parameter takes a `bool`, enabling or disabling scroll wheel zooming. The second takes a `double`, which is used as a multiplier for changing the zoom level internally.

```dart
        enableScrollWheel: true,
        scrollWheelVelocity: 0.005,
```

Defaults to `true` and 0.005.

## When Position Changed (`onPositionChanged`)

Takes a function with two arguments. Gets called whenever the map position is changed, even if it is not changed by the user.

```dart
        onPositionChanged: (MapPosition position, bool hasGesture) {
            // Your logic here. `hasGesture` dictates whether the change
            // was due to a user interaction or something else. `position` is
            // the new position of the map.
        }
```

## When Map Tapped (`onTap`)

Takes a function with one argument. Gets called whenever the the user taps/clicks/presses on the map.

```dart
        onTap: (TapPosition position, LatLng location) {
            // Your logic here. `location` dictates the coordinate at which the user tapped.
        }
```

## When Map Ready (`onMapReady`)

See [Controller](/v3/usage/controller.md#usage-in-initstate) before using this callback.

This callback can be registered if you need to do something with the map controller as soon as the map is available and initialized; generally though it isn't needed and the map is available after first build.

Takes a function with zero arguments. Gets called from the `initState()` method of the `FlutterMap`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fleaflet.dev/v3/usage/options/other-options.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
