---
title: "MTFillExtrusionLayer | Mobile sdk | Mobile sdk ios | Ios"
description: "A fill-extrusion style layer renders one or more filled (and optionally stroked) extruded (3D) polygons on a map."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# MTFillExtrusionLayer

```
public class MTFillExtrusionLayer : MTLayer, @unchecked Sendable, Codable
```

```
extension MTFillExtrusionLayer: Equatable
```

A fill-extrusion style layer renders one or more filled (and optionally stroked) extruded (3D) polygons on a map.

[](#/Core%20properties)

### Core properties

-   `[identifier](#/s:11MapTilerSDK20MTFillExtrusionLayerC10identifierSSvp)`
    
    Unique layer identifier.
    
    #### Declaration
    
    Swift
    
    ```
    public var identifier: String
    ```
    
-   `[type](#/s:11MapTilerSDK20MTFillExtrusionLayerC4typeAA11MTLayerTypeOvp)`
    
    Type of the layer.
    
    #### Declaration
    
    Swift
    
    ```
    public private(set) var type: MTLayerType { get }
    ```
    
-   `[sourceIdentifier](#/s:11MapTilerSDK20MTFillExtrusionLayerC16sourceIdentifierSSvp)`
    
    Identifier of the source to be used for this layer.
    
    #### Declaration
    
    Swift
    
    ```
    public var sourceIdentifier: String
    ```
    
-   `[maxZoom](#/s:11MapTilerSDK20MTFillExtrusionLayerC7maxZoomSdSgvp)`
    
    The maximum zoom level for the layer. Optional number between 0 and 24.
    
    #### Declaration
    
    Swift
    
    ```
    public var maxZoom: Double?
    ```
    
-   `[minZoom](#/s:11MapTilerSDK20MTFillExtrusionLayerC7minZoomSdSgvp)`
    
    The minimum zoom level for the layer. Optional number between 0 and 24.
    
    #### Declaration
    
    Swift
    
    ```
    public var minZoom: Double?
    ```
    
-   `[sourceLayer](#/s:11MapTilerSDK20MTFillExtrusionLayerC06sourceF0SSSgvp)`
    
    Layer to use from a vector tile source. Required for vector tile sources; prohibited for others.
    
    #### Declaration
    
    Swift
    
    ```
    public var sourceLayer: String?
    ```
    

[](#/Paint%20properties)

### Paint properties

-   `[base](#/s:11MapTilerSDK20MTFillExtrusionLayerC4baseAA12MTStyleValueOSgvp)`
    
    The height with which to extrude the base of this layer. Must be less than or equal to fill-extrusion-height. Units in meters. Supports expressions.
    
    #### Declaration
    
    Swift
    
    ```
    public var base: MTStyleValue?
    ```
    
-   `[color](#/s:11MapTilerSDK20MTFillExtrusionLayerC5colorAA12MTStyleValueOSgvp)`
    
    The base color of the extruded fill. Supports expressions.
    
    #### Declaration
    
    Swift
    
    ```
    public var color: MTStyleValue?
    ```
    
-   `[height](#/s:11MapTilerSDK20MTFillExtrusionLayerC6heightAA12MTStyleValueOSgvp)`
    
    The height with which to extrude this layer. Units in meters. Supports expressions.
    
    #### Declaration
    
    Swift
    
    ```
    public var height: MTStyleValue?
    ```
    
-   `[opacity](#/s:11MapTilerSDK20MTFillExtrusionLayerC7opacityAA12MTStyleValueOSgvp)`
    
    The opacity of the entire fill extrusion layer. Supports expressions. Default 1.
    
    #### Declaration
    
    Swift
    
    ```
    public var opacity: MTStyleValue?
    ```
    
-   `[pattern](#/s:11MapTilerSDK20MTFillExtrusionLayerC7patternSSSgvp)`
    
    Name of image in sprite to use for drawing images on extruded fills.
    
    #### Declaration
    
    Swift
    
    ```
    public var pattern: String?
    ```
    
-   `[translate](#/s:11MapTilerSDK20MTFillExtrusionLayerC9translateSaySdGSgvp)`
    
    The geometry’s offset. Values are \[x, y\] in pixels.
    
    #### Declaration
    
    Swift
    
    ```
    public var translate: [Double]?
    ```
    
-   `[translateAnchor](#/s:11MapTilerSDK20MTFillExtrusionLayerC15translateAnchorAA0de9TranslateH0OSgvp)`
    
    Controls the frame of reference for translate.
    
    #### Declaration
    
    Swift
    
    ```
    public var translateAnchor: MTFillExtrusionTranslateAnchor?
    ```
    
-   `[verticalGradient](#/s:11MapTilerSDK20MTFillExtrusionLayerC16verticalGradientSbSgvp)`
    
    Whether to apply a vertical gradient to the sides of a fill-extrusion layer. Defaults to true.
    
    #### Declaration
    
    Swift
    
    ```
    public var verticalGradient: Bool?
    ```
    

[](#/Layout%20properties)

### Layout properties

-   `[visibility](#/s:11MapTilerSDK20MTFillExtrusionLayerC10visibilityAA17MTLayerVisibilityOSgvp)`
    
    Whether this layer is displayed. Defaults to “visible”.
    
    #### Declaration
    
    Swift
    
    ```
    public var visibility: MTLayerVisibility?
    ```
    

[](#/Filters)

### Filters

-   `[filterExpression](#/s:11MapTilerSDK20MTFillExtrusionLayerC16filterExpressionAA15MTPropertyValueOSgvp)`
    
    Inline filter expression to be embedded in the layer JSON.
    
    #### Declaration
    
    Swift
    
    ```
    public var filterExpression: MTPropertyValue?
    ```
    
-   `[initialFilter](#/s:11MapTilerSDK20MTFillExtrusionLayerC13initialFilterAA15MTPropertyValueOSgvp)`
    
    Optional filter to apply to this layer after it is added to the map.
    
    #### Declaration
    
    Swift
    
    ```
    public var initialFilter: MTPropertyValue?
    ```
    

[](#/Initializers)

### Initializers

-   `[init(identifier:sourceIdentifier:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC10identifier16sourceIdentifierACSS_SStcfc)`
    
    Initializes the layer with a unique identifier and source identifier.
    
    #### Declaration
    
    Swift
    
    ```
    public init(identifier: String, sourceIdentifier: String)
    ```
    
-   `[init(identifier:sourceIdentifier:maxZoom:minZoom:sourceLayer:base:color:height:opacity:pattern:translate:translateAnchor:verticalGradient:visibility:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC10identifier16sourceIdentifier7maxZoom03minK00hF04base5color6height7opacity7pattern9translate0R6Anchor16verticalGradient10visibilityACSS_SSSdSgARSSSgAA12MTStyleValueOSgA3vSSaySdGSgAA0de9TranslateS0OSgSbSgAA17MTLayerVisibilityOSgtcfc)`
    
    Initializes the layer with all options.
    
    #### Declaration
    
    Swift
    
    ```
    public init(
        identifier: String,
        sourceIdentifier: String,
        maxZoom: Double? = nil,
        minZoom: Double? = nil,
        sourceLayer: String? = nil,
        base: MTStyleValue? = nil,
        color: MTStyleValue? = .color(.black),
        height: MTStyleValue? = nil,
        opacity: MTStyleValue? = .number(1.0),
        pattern: String? = nil,
        translate: [Double]? = [0.0, 0.0],
        translateAnchor: MTFillExtrusionTranslateAnchor? = .map,
        verticalGradient: Bool? = true,
        visibility: MTLayerVisibility? = .visible
    )
    ```
    

[](#/Codable)

### Codable

-   `[init(from:)](#/s:Se4fromxs7Decoder_p_tKcfc)`
    
    #### Declaration
    
    Swift
    
    ```
    public required init(from decoder: any Decoder) throws
    ```
    
-   `[encode(to:)](#/s:SE6encode2toys7Encoder_p_tKF)`
    
    #### Declaration
    
    Swift
    
    ```
    public func encode(to encoder: Encoder) throws
    ```
    
-   `[addToMap(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC05addToA0yyAA9MTMapViewCF)`
    
    Adds layer to map DSL style. Prefer MTStyle.addLayer(\_:) on MTMapView instead.
    
    #### Declaration
    
    Swift
    
    ```
    public func addToMap(_ mapView: MTMapView)
    ```
    

[](#/Modifiers%20%28not%20to%20be%20used%20outside%20DSL%29)

### Modifiers (not to be used outside DSL)

-   `[maxZoom(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC7maxZoomyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func maxZoom(_ value: Double) -> Self
    ```
    
-   `[minZoom(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC7minZoomyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func minZoom(_ value: Double) -> Self
    ```
    
-   `[sourceLayer(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC06sourceF0yACXDSSF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func sourceLayer(_ value: String) -> Self
    ```
    
-   `[base(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC4baseyACXDAA12MTStyleValueOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func base(_ value: MTStyleValue) -> Self
    ```
    
-   `[color(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC5coloryACXDAA12MTStyleValueOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func color(_ value: MTStyleValue) -> Self
    ```
    
-   `[height(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC6heightyACXDAA12MTStyleValueOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func height(_ value: MTStyleValue) -> Self
    ```
    
-   `[opacity(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC7opacityyACXDAA12MTStyleValueOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func opacity(_ value: MTStyleValue) -> Self
    ```
    
-   `[pattern(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC7patternyACXDSSF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func pattern(_ value: String) -> Self
    ```
    
-   `[translate(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC9translateyACXDSaySdGF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func translate(_ value: [Double]) -> Self
    ```
    
-   `[translateAnchor(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC15translateAnchoryACXDAA0de9TranslateH0OF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func translateAnchor(_ value: MTFillExtrusionTranslateAnchor) -> Self
    ```
    
-   `[verticalGradient(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC16verticalGradientyACXDSbF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func verticalGradient(_ value: Bool) -> Self
    ```
    
-   `[visibility(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC10visibilityyACXDAA17MTLayerVisibilityOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func visibility(_ value: MTLayerVisibility) -> Self
    ```
    
-   `[withFilter(_:)](#/s:11MapTilerSDK20MTFillExtrusionLayerC10withFilteryACXDAA15MTPropertyValueOF)`
    
    Modifier. Sets the initial filter to apply upon add.
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func withFilter(_ value: MTPropertyValue) -> Self
    ```
    
-   `[==(_:_:)](#/s:SQ2eeoiySbx_xtFZ)`
    
    #### Declaration
    
    Swift
    
    ```
    public static func == (lhs: MTFillExtrusionLayer, rhs: MTFillExtrusionLayer) -> Bool
    ```
