MGLHillshadeStyleLayer
@interface MGLHillshadeStyleLayer : MGLForegroundStyleLayer
An MGLHillshadeStyleLayer
is a style layer that renders raster digital elevation
model (DEM) tiles on the map.
Use a hillshade style layer to configure the color parameters of raster tiles
loaded by an MGLRasterDEMSource
object. For example, you could use a
hillshade style layer to render Mapbox
Terrain-RGB data.
To display posterized hillshading based on vector shapes, as with the Mapbox Terrain
source, use an MGLVectorTileSource
object in conjunction with several
MGLFillStyleLayer
objects.
You can access an existing hillshade 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 hillshade style layer and add it to the style using a method such as
-[MGLStyle addLayer:]
.
Example
let layer = MGLHillshadeStyleLayer(identifier: "hills", source: source)
layer.hillshadeExaggeration = NSExpression(forConstantValue: 0.6)
if let canalShadowLayer = mapView.style?.layer(withIdentifier: "waterway-river-canal-shadow") {
mapView.style?.insertLayer(layer, below: canalShadowLayer)
}
-
Returns a hillshade 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.
-
The shading color used to accentuate rugged terrain like sharp cliffs and gorges.
The default value of this property is an expression that evaluates to
UIColor.blackColor
. Set this property tonil
to reset it to the default value.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
This property does not support applying interpolation or step functions to feature attributes.
Declaration
Objective-C
@property (assign, readwrite, nonatomic, null_resettable) NSExpression *hillshadeAccentColor;
Swift
var hillshadeAccentColor: NSExpression! { get set }
- Constant
-
The transition affecting any changes to this layer’s
hillshadeAccentColor
property.This property corresponds to the
hillshade-accent-color-transition
property in the style JSON file format.Declaration
Objective-C
@property (assign, readwrite, nonatomic) MGLTransition hillshadeAccentColorTransition;
Swift
var hillshadeAccentColorTransition: MGLTransition { get set }
-
Intensity of the hillshade
The default value of this property is an expression that evaluates to the float
0.5
. Set this property tonil
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 *hillshadeExaggeration;
Swift
var hillshadeExaggeration: NSExpression! { get set }
-
The transition affecting any changes to this layer’s
hillshadeExaggeration
property.This property corresponds to the
hillshade-exaggeration-transition
property in the style JSON file format.Declaration
Objective-C
@property (assign, readwrite, nonatomic) MGLTransition hillshadeExaggerationTransition;
Swift
var hillshadeExaggerationTransition: MGLTransition { get set }
-
The shading color of areas that faces towards the light source.
The default value of this property is an expression that evaluates to
UIColor.whiteColor
. Set this property tonil
to reset it to the default value.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
This property does not support applying interpolation or step functions to feature attributes.
Declaration
Objective-C
@property (assign, readwrite, nonatomic, null_resettable) NSExpression *hillshadeHighlightColor;
Swift
var hillshadeHighlightColor: NSExpression! { get set }
- Constant
-
The transition affecting any changes to this layer’s
hillshadeHighlightColor
property.This property corresponds to the
hillshade-highlight-color-transition
property in the style JSON file format.Declaration
Objective-C
@property (assign, readwrite, nonatomic) MGLTransition hillshadeHighlightColorTransition;
Swift
var hillshadeHighlightColorTransition: MGLTransition { get set }
-
Direction of light source when map is rotated.
The default value of this property is an expression that evaluates to
viewport
. Set this property tonil
to reset it to the default value.You can set this property to an expression containing any of the following:
- Constant
MGLHillshadeIlluminationAnchor
values - Any of the following constant string values:
map
: The hillshade illumination is relative to the north direction.viewport
: The hillshade illumination is relative to the top of 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 *hillshadeIlluminationAnchor;
Swift
var hillshadeIlluminationAnchor: NSExpression! { get set }
- Constant
-
The direction of the light source used to generate the hillshading with 0 as the top of the viewport if
hillshadeIlluminationAnchor
is set toMGLHillshadeIlluminationAnchorViewport
and due north ifhillshadeIlluminationAnchor
is set toMGLHillshadeIlluminationAnchorMap
.The default value of this property is an expression that evaluates to the float
335
. Set this property tonil
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 359 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 *hillshadeIlluminationDirection;
Swift
var hillshadeIlluminationDirection: NSExpression! { get set }
-
The shading color of areas that face away from the light source.
The default value of this property is an expression that evaluates to
UIColor.blackColor
. Set this property tonil
to reset it to the default value.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
This property does not support applying interpolation or step functions to feature attributes.
Declaration
Objective-C
@property (assign, readwrite, nonatomic, null_resettable) NSExpression *hillshadeShadowColor;
Swift
var hillshadeShadowColor: NSExpression! { get set }
- Constant
-
The transition affecting any changes to this layer’s
hillshadeShadowColor
property.This property corresponds to the
hillshade-shadow-color-transition
property in the style JSON file format.Declaration
Objective-C
@property (assign, readwrite, nonatomic) MGLTransition hillshadeShadowColorTransition;
Swift
var hillshadeShadowColorTransition: MGLTransition { get set }