Layers
To display anything on the map, you'll need to include at least one layer. This is usually a TileLayer
, which displays the map tiles themselves: without it, the map isn't really a very good map!

FlutterMap
widget, containing multiple feature layers, atop a TileLayer
To insert a layer, add it to the children
property. Other layers (sometimes referred to as 'feature layers', as they are map features) can then be stacked on top, where the last widget in the children
list is topmost. For example, you might display a MarkerLayer
, or any widget as your own custom layer (Creating New Layers)!
Each layer is isolated from the other layers, and so handles its own independent logic and handling. However, they can access and modify the internal state of the map, as well as respond to changes.
Mobile vs Static Layers
Most layers are 'mobile', such as the TileLayer
. These use a MobileLayerTransformer
widget internally, which enables the layer to properly move and rotate with the map's current camera.
However, some layers are 'static', such as the AttributionLayer
s. These aren't designed to move nor rotate with the map, and usually make use of a widget like Align
and/or SizedBox.expand
to achieve this.
Both of these layer types are defined in the same children
list. Most of the time, static layers go atop mobile layers, so should be at the end of the list.
Layers With Elements
Some layers - such as PolygonLayer
- take 'elements' - such as Polygon
s - as an argument, which are then displayed by the layer. They are usually displayed bottom-to-top in the order of the list (like a Stack
).
Hit Testing & Interactivity
Some layers that use elements also support interactivity via hit testing. This is described in more detail on another page:
Layer InteractivityLast updated
Was this helpful?