Skip to content

Fill Extrusion Style Layer

The FillExtrusionStyleLayer is either used by the map style or can be added to the map programmatically to symbolize data on the map.

Fill Extrusion Style Layer

Basic Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
late final MapController _controller;

@override
Widget build(BuildContext context) {
  return MapLibreMap(
      options: MapOptions(initCamera: .position(center: Geographic(lon: 9.17, lat: 47.68), zoom: 7)),
      onMapCreated: (controller) => _controller = controller,
      onStyleLoaded: (style) async {
        // add the tile source
        await style.sources.add(
          const GeoJsonSource.url(
            id: _sourceId,
            url:
            'https://maplibre.org/maplibre-gl-js/docs/assets/indoor-3d-map.geojson',
          ),
        );
        final layer = FillExtrusionStyleLayer(
          id: 'room-extrusion',
          sourceId: _sourceId,
          // See the MapLibre Style Specification for details on data expressions.
            // https://maplibre.org/maplibre-style-spec/expressions/
            color: .get('color').convertToColor(),
            height: .get('height').asNumber(),
            base: .get('base_height').asNumber(),
            opacity: const .literal(0.5),
        );
        // add the layer
        await style.layers.add(layer);
      }
  );
}

Check out the example app to learn more.

Style & Layout

Every property of the style spec is an optional parameter and a getter and setter of the layer. See Paint & Layout and Expressions.

Read the Paint & Layout chapter to learn more on this topic.