# MGLFillStyleLayer

    @interface MGLFillStyleLayer : MGLVectorStyleLayer

An `MGLFillStyleLayer` is a style layer that renders one or more filled (and optionally stroked) polygons on the map.

Use a fill style layer to configure the visual appearance of polygon or multipolygon features. These features can come from vector tiles loaded by an `MGLVectorTileSource` object, or they can be `MGLPolygon`, `MGLPolygonFeature`, `MGLMultiPolygon`, or `MGLMultiPolygonFeature` instances in an `MGLShapeSource` or `MGLComputedShapeSource` object.

You can access an existing fill style layer using the `-[MGLStyle layerWithIdentifier:]` method if you know its identifier; otherwise, find it using the `MGLStyle.layers` property. You can also create a new fill style layer and add it to the style using a method such as `-[MGLStyle addLayer:]`.

#### Related examples

See the Select a feature within a layer example to learn how to use a `TERNARY` expression to modify the `fillOpacity` of an `MGLFillStyleLayer` object. See the Add a pattern to a polygon example to learn how to use an image to add pattern to the features styled by a `MGLFillStyleLayer`.

### Example

    let layer = MGLFillStyleLayer(identifier: "parks", source: parks)
    layer.sourceLayerIdentifier = "parks"
    layer.fillColor = NSExpression(forConstantValue: UIColor.green)
    layer.predicate = NSPredicate(format: "type == %@", "national-park")
    mapView.style?.addLayer(layer)

- `-initWithIdentifier:source:`

  Returns a fill style layer initialized with an identifier and source.

  After initializing and configuring the style layer, add it to a map view’s style using the `-[MGLStyle addLayer:]` or `-[MGLStyle insertLayer:belowLayer:]` method.

  #### Declaration

  Objective-C

      - (nonnull instancetype)initWithIdentifier:(nonnull NSString *)identifier
                                          source:(nonnull MGLSource *)source;

  Swift

      init(identifier: String, source: MGLSource)

  #### Parameters

  `identifier` | A string that uniquely identifies the source in the style to which it is added.
  `source` | The source from which to obtain the data to style. If the source has not yet been added to the current style, the behavior is undefined.

  #### Return Value

  An initialized foreground style layer.

  View Source on GitHub

### Accessing the Paint Attributes

- `fillAntialiased`

  Whether or not the fill should be antialiased.

  The default value of this property is an expression that evaluates to `YES`. Set this property to `nil` to reset it to the default value.

  This attribute corresponds to the `fill-antialias` layout property in the Mapbox Style Specification.

  You can set this property to an expression containing any of the following:

  - Constant Boolean values
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Step functions applied to the `$zoomLevel` variable

  This property does not support applying interpolation functions to the `$zoomLevel` variable or applying interpolation or step functions to feature attributes.

  #### Declaration

  Objective-C

      @property (getter=isFillAntialiased, assign, readwrite, nonatomic,
                null_resettable) NSExpression *fillAntialiased;

  Swift

      var fillAntialiased: NSExpression! { get set }

  View Source on GitHub
- `fillColor`

  The color of the filled part of this layer.

  The default value of this property is an expression that evaluates to `UIColor.blackColor`. Set this property to `nil` to reset it to the default value.

  This property is only applied to the style if `fillPattern` is set to `nil`. Otherwise, it is ignored.

  You can set this property to an expression containing any of the following:

  - Constant `UIColor` values
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Interpolation and step functions applied to the `$zoomLevel` variable and/or feature attributes

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic, null_resettable)
          NSExpression *fillColor;

  Swift

      var fillColor: NSExpression! { get set }

  View Source on GitHub
- `fillColorTransition`

  The transition affecting any changes to this layer’s `fillColor` property.

  This property corresponds to the `fill-color-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic) MGLTransition fillColorTransition;

  Swift

      var fillColorTransition: MGLTransition { get set }

  View Source on GitHub
- `fillOpacity`

  The opacity of the entire fill layer. In contrast to the `fillColor`, this value will also affect the 1pt stroke around the fill, if the stroke is used.

  The default value of this property is an expression that evaluates to the float `1`. Set this property to `nil` to reset it to the default value.

  You can set this property to an expression containing any of the following:

  - Constant numeric values between 0 and 1 inclusive
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Interpolation and step functions applied to the `$zoomLevel` variable and/or feature attributes

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic, null_resettable)
          NSExpression *fillOpacity;

  Swift

      var fillOpacity: NSExpression! { get set }

  View Source on GitHub
- `fillOpacityTransition`

  The transition affecting any changes to this layer’s `fillOpacity` property.

  This property corresponds to the `fill-opacity-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic) MGLTransition fillOpacityTransition;

  Swift

      var fillOpacityTransition: MGLTransition { get set }

  View Source on GitHub
- `fillOutlineColor`

  The outline color of the fill. Matches the value of `fillColor` if unspecified.

  This property is only applied to the style if `fillPattern` is set to `nil`, and `fillAntialiased` is set to an expression that evaluates to `YES`. Otherwise, it is ignored.

  You can set this property to an expression containing any of the following:

  - Constant `UIColor` values
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Interpolation and step functions applied to the `$zoomLevel` variable and/or feature attributes

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic, null_resettable)
          NSExpression *fillOutlineColor;

  Swift

      var fillOutlineColor: NSExpression! { get set }

  View Source on GitHub
- `fillOutlineColorTransition`

  The transition affecting any changes to this layer’s `fillOutlineColor` property.

  This property corresponds to the `fill-outline-color-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic)
          MGLTransition fillOutlineColorTransition;

  Swift

      var fillOutlineColorTransition: MGLTransition { get set }

  View Source on GitHub
- `fillPattern`

  Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, …, 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.

  You can set this property to an expression containing any of the following:

  - Constant string values
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Interpolation and step functions applied to the `$zoomLevel` variable and/or feature attributes

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic, null_resettable)
          NSExpression *fillPattern;

  Swift

      var fillPattern: NSExpression! { get set }

  View Source on GitHub
- `fillPatternTransition`

  The transition affecting any changes to this layer’s `fillPattern` property.

  This property corresponds to the `fill-pattern-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic) MGLTransition fillPatternTransition;

  Swift

      var fillPatternTransition: MGLTransition { get set }

  View Source on GitHub
- `fillTranslation`

  The geometry’s offset.

  This property is measured in points.

  The default value of this property is an expression that evaluates to an `NSValue` object containing a `CGVector` struct set to 0 points rightward and 0 points downward. Set this property to `nil` to reset it to the default value.

  This attribute corresponds to the `fill-translate` layout property in the Mapbox Style Specification.

  You can set this property to an expression containing any of the following:

  - Constant `CGVector` values
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Interpolation and step functions applied to the `$zoomLevel` variable

  This property does not support applying interpolation or step functions to feature attributes.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic, null_resettable)
          NSExpression *fillTranslation;

  Swift

      var fillTranslation: NSExpression! { get set }

  View Source on GitHub
- `fillTranslationTransition`

  The transition affecting any changes to this layer’s `fillTranslation` property.

  This property corresponds to the `fill-translate-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic) MGLTransition fillTranslationTransition;

  Swift

      var fillTranslationTransition: MGLTransition { get set }

  View Source on GitHub
- `fillTranslationAnchor`

  Controls the frame of reference for `fillTranslation`.

  The default value of this property is an expression that evaluates to `map`. Set this property to `nil` to reset it to the default value.

  This property is only applied to the style if `fillTranslation` is non-`nil`. Otherwise, it is ignored.

  This attribute corresponds to the `fill-translate-anchor` layout property in the Mapbox Style Specification.

  You can set this property to an expression containing any of the following:

  - Constant `MGLFillTranslationAnchor` values
  - Any of the following constant string values:
    - `map`: The fill is translated relative to the map.
    - `viewport`: The fill is translated relative to the viewport.
  - Predefined functions, including mathematical and string operators
  - Conditional expressions
  - Variable assignments and references to assigned variables
  - Step functions applied to the `$zoomLevel` variable

  This property does not support applying interpolation functions to the `$zoomLevel` variable or applying interpolation or step functions to feature attributes.

  #### Declaration

  Objective-C

      @property (assign, readwrite, nonatomic, null_resettable)
          NSExpression *fillTranslationAnchor;

  Swift

      var fillTranslationAnchor: NSExpression! { get set }

  View Source on GitHub