# MGLRasterStyleLayer

    @interface MGLRasterStyleLayer : MGLForegroundStyleLayer

An `MGLRasterStyleLayer` is a style layer that renders georeferenced raster imagery on the map, especially raster tiles.

Use a raster style layer to configure the color parameters of raster tiles loaded by an `MGLRasterTileSource` object or raster images loaded by an `MGLImageSource` object. For example, you could use a raster style layer to render Mapbox Satellite imagery, a raster tile set uploaded to Mapbox Studio, or a raster map authored in TileMill, the classic Mapbox Editor, or Mapbox Studio Classic.

Raster images may also be used as icons or patterns in a style layer. To register an image for use as an icon or pattern, use the `-[MGLStyle setImage:forName:]` method. To configure a point annotation’s image, use the `MGLAnnotationImage` class.

You can access an existing raster 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 raster style layer and add it to the style using a method such as `-[MGLStyle addLayer:]`.

#### Related examples

See the Add an image and Add raster imagery examples to learn how to add imagery with this style layer.

### Example

    let layer = MGLRasterStyleLayer(identifier: "clouds", source: source)
    layer.rasterOpacity = NSExpression(forConstantValue: 0.5)
    mapView.style?.addLayer(layer)

- `-initWithIdentifier:source:`

  Returns a raster 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

- `maximumRasterBrightness`

  Increase or reduce the brightness of the image. The value is the maximum brightness.

  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.

  This attribute corresponds to the `raster-brightness-max` layout property in the Mapbox Style Specification.

  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

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

  #### Declaration

  Objective-C

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

  Swift

      var maximumRasterBrightness: NSExpression! { get set }

  View Source on GitHub
- `maximumRasterBrightnessTransition`

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

  This property corresponds to the `raster-brightness-max-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

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

  Swift

      var maximumRasterBrightnessTransition: MGLTransition { get set }

  View Source on GitHub
- `minimumRasterBrightness`

  Increase or reduce the brightness of the image. The value is the minimum brightness.

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

  This attribute corresponds to the `raster-brightness-min` layout property in the Mapbox Style Specification.

  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

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

  #### Declaration

  Objective-C

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

  Swift

      var minimumRasterBrightness: NSExpression! { get set }

  View Source on GitHub
- `minimumRasterBrightnessTransition`

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

  This property corresponds to the `raster-brightness-min-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

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

  Swift

      var minimumRasterBrightnessTransition: MGLTransition { get set }

  View Source on GitHub
- `rasterContrast`

  Increase or reduce the contrast of the image.

  The default value of this property is an expression that evaluates to the float `0`. 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 −1 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

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

  #### Declaration

  Objective-C

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

  Swift

      var rasterContrast: NSExpression! { get set }

  View Source on GitHub
- `rasterContrastTransition`

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

  This property corresponds to the `raster-contrast-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

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

  Swift

      var rasterContrastTransition: MGLTransition { get set }

  View Source on GitHub
- `rasterFadeDuration`

  Fade duration when a new tile is added.

  This property is measured in milliseconds.

  The default value of this property is an expression that evaluates to the float `300`. 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 no less than 0
  - 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 *rasterFadeDuration;

  Swift

      var rasterFadeDuration: NSExpression! { get set }

  View Source on GitHub
- `rasterHueRotation`

  Rotates hues around the color wheel.

  This property is measured in degrees.

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

  This attribute corresponds to the `raster-hue-rotate` layout property in the Mapbox Style Specification.

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

  - Constant numeric 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 *rasterHueRotation;

  Swift

      var rasterHueRotation: NSExpression! { get set }

  View Source on GitHub
- `rasterHueRotationTransition`

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

  This property corresponds to the `raster-hue-rotate-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

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

  Swift

      var rasterHueRotationTransition: MGLTransition { get set }

  View Source on GitHub
- `rasterOpacity`

  The opacity at which the image will be drawn.

  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

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

  #### Declaration

  Objective-C

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

  Swift

      var rasterOpacity: NSExpression! { get set }

  View Source on GitHub
- `rasterOpacityTransition`

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

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

  #### Declaration

  Objective-C

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

  Swift

      var rasterOpacityTransition: MGLTransition { get set }

  View Source on GitHub
- `rasterResamplingMode`

  The resampling/interpolation method to use for overscaling, also known as texture magnification filter

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

  This attribute corresponds to the `raster-resampling` layout property in the Mapbox Style Specification.

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

  - Constant `MGLRasterResamplingMode` values
  - Any of the following constant string values:
    - `linear`: (Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled
    - `nearest`: Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled
  - 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 *rasterResamplingMode;

  Swift

      var rasterResamplingMode: NSExpression! { get set }

  View Source on GitHub
- `rasterSaturation`

  Increase or reduce the saturation of the image.

  The default value of this property is an expression that evaluates to the float `0`. 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 −1 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

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

  #### Declaration

  Objective-C

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

  Swift

      var rasterSaturation: NSExpression! { get set }

  View Source on GitHub
- `rasterSaturationTransition`

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

  This property corresponds to the `raster-saturation-transition` property in the style JSON file format.

  #### Declaration

  Objective-C

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

  Swift

      var rasterSaturationTransition: MGLTransition { get set }

  View Source on GitHub