// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`.
#import "MGLFoundation.h"
#import "MGLForegroundStyleLayer.h"
NS_ASSUME_NONNULL_BEGIN
/**
The resampling/interpolation method to use for overscaling, also known as
texture magnification filter
Values of this type are used in the `MGLRasterStyleLayer.rasterResamplingMode`
property.
*/
typedef NS_ENUM(NSUInteger, MGLRasterResamplingMode) {
/**
(Bi)linear filtering interpolates point values using the weighted average
of the four closest original source points creating a smooth but blurry
look when overscaled
*/
MGLRasterResamplingModeLinear,
/**
Nearest neighbor filtering interpolates point values using the nearest
original source point creating a sharp but pointated look when overscaled
*/
MGLRasterResamplingModeNearest,
};
/**
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
```swift
let layer = MGLRasterStyleLayer(identifier: "clouds", source: source)
layer.rasterOpacity = NSExpression(forConstantValue: 0.5)
mapView.style?.addLayer(layer)
```
*/
MGL_EXPORT
@interface MGLRasterStyleLayer : MGLForegroundStyleLayer
/**
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.
@param identifier A string that uniquely identifies the source in the style to
which it is added.
@param 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 An initialized foreground style layer.
*/
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source;
#pragma mark - Accessing the Paint Attributes
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *maximumRasterBrightness;
/**
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.
*/
@property (nonatomic) MGLTransition maximumRasterBrightnessTransition;
@property (nonatomic, null_resettable) NSExpression *rasterBrightnessMax __attribute__((unavailable("Use maximumRasterBrightness instead.")));
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *minimumRasterBrightness;
/**
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.
*/
@property (nonatomic) MGLTransition minimumRasterBrightnessTransition;
@property (nonatomic, null_resettable) NSExpression *rasterBrightnessMin __attribute__((unavailable("Use minimumRasterBrightness instead.")));
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *rasterContrast;
/**
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.
*/
@property (nonatomic) MGLTransition rasterContrastTransition;
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *rasterFadeDuration;
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *rasterHueRotation;
/**
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.
*/
@property (nonatomic) MGLTransition rasterHueRotationTransition;
@property (nonatomic, null_resettable) NSExpression *rasterHueRotate __attribute__((unavailable("Use rasterHueRotation instead.")));
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *rasterOpacity;
/**
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.
*/
@property (nonatomic) MGLTransition rasterOpacityTransition;
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *rasterResamplingMode;
@property (nonatomic, null_resettable) NSExpression *rasterResampling __attribute__((unavailable("Use rasterResamplingMode instead.")));
/**
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.
*/
@property (nonatomic, null_resettable) NSExpression *rasterSaturation;
/**
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.
*/
@property (nonatomic) MGLTransition rasterSaturationTransition;
@end
/**
Methods for wrapping an enumeration value for a style layer attribute in an
`MGLRasterStyleLayer` object and unwrapping its raw value.
*/
@interface NSValue (MGLRasterStyleLayerAdditions)
#pragma mark Working with Raster Style Layer Attribute Values
/**
Creates a new value object containing the given `MGLRasterResamplingMode` enumeration.
@param rasterResamplingMode The value for the new object.
@return A new value object that contains the enumeration value.
*/
+ (instancetype)valueWithMGLRasterResamplingMode:(MGLRasterResamplingMode)rasterResamplingMode;
/**
The `MGLRasterResamplingMode` enumeration representation of the value.
*/
@property (readonly) MGLRasterResamplingMode MGLRasterResamplingModeValue;
@end
NS_ASSUME_NONNULL_END