Creating New Layers
Creating a new map layer is a great way to achieve a more custom, performant, map design. For example, it might be used to display a scale bar, or overlay a grid.
1. Creating A Layer Widget
It starts with a normal StatelessWidget
or StatefulWidget
, which then starts its widget tree with a widget dependent on whether the layer is designed to be either 'mobile' or 'static', depending on the purpose of the layer. For more information, see Mobile vs Static Layers.
class CustomMobileLayer extends StatelessWidget {
const CustomMobileLayer({super.key});
@override
Widget build(BuildContext context) {
return MobileLayerTransformer(
child: // your child here
);
}
}
2. Hooking Into Inherited State
Then, there are three possible methods that could be used to retrieve separate 'aspects' of the state of the map.
Calling these inside a build
method will also cause the layer to rebuild automatically when the depended-on aspects change.
final camera = MapCamera.of(context);
final controller = MapController.of(context);
final options = MapOptions.of(context);
Using these methods will restrict this widget to only being usable inside the context of a FlutterMap
.
Was this helpful?