+ +
+
+

MGLFillExtrusionStyleLayer

+
+
+

+@interface MGLFillExtrusionStyleLayer : MGLVectorStyleLayer
+ +
+
+

An MGLFillExtrusionStyleLayer is a style layer that renders one or more 3D +extruded polygons on the map.

+ +

Use a fill-extrusion 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-extrusion 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-extrusion style layer and add it to the style using a method such as +-[MGLStyle addLayer:].

+

Example

+
let layer = MGLFillExtrusionStyleLayer(identifier: "buildings", source: buildings)
+layer.sourceLayerIdentifier = "building"
+layer.fillExtrusionHeight = NSExpression(forKeyPath: "height")
+layer.fillExtrusionBase = NSExpression(forKeyPath: "min_height")
+layer.predicate = NSPredicate(format: "extrude == 'true'")
+mapView.style?.addLayer(layer)
+
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +

    Returns a fill-extrusion 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.

    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + fillExtrusionBase + +
    +
    +
    +
    +

    The height with which to extrude the base of this layer. Must be less than or +equal to fillExtrusionHeight.

    + +

    This property is measured in meters.

    + +

    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 property is only applied to the style if fillExtrusionHeight is +non-nil. Otherwise, it is ignored.

    + +

    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 and/or +feature attributes
    • +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

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

    Swift

    +
    var fillExtrusionBase: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

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

    + +

    This property corresponds to the fill-extrusion-base-transition property in the style JSON file format.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (assign, readwrite, nonatomic)
    +    MGLTransition fillExtrusionBaseTransition;
    + +
    +
    +

    Swift

    +
    var fillExtrusionBaseTransition: MGLTransition { get set }
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + fillExtrusionColor + +
    +
    +
    +
    +

    The base color of this layer. The extrusion’s surfaces will be shaded +differently based on this color in combination with the light settings. If +this color is specified with an alpha component, the alpha component will be +ignored; use fillExtrusionOpacity to set layer opacityco.

    + +

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

    + +

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

    + +

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

    + +
      +
    • Constant NSColor 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 *fillExtrusionColor;
    + +
    +
    +

    Swift

    +
    var fillExtrusionColor: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

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

    + +

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

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (assign, readwrite, nonatomic)
    +    MGLTransition fillExtrusionColorTransition;
    + +
    +
    +

    Swift

    +
    var fillExtrusionColorTransition: MGLTransition { get set }
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + fillExtrusionHeight + +
    +
    +
    +
    +

    The height with which to extrude this layer.

    + +

    This property is measured in meters.

    + +

    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 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 and/or +feature attributes
    • +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

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

    Swift

    +
    var fillExtrusionHeight: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

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

    + +

    This property corresponds to the fill-extrusion-height-transition property in the style JSON file format.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (assign, readwrite, nonatomic)
    +    MGLTransition fillExtrusionHeightTransition;
    + +
    +
    +

    Swift

    +
    var fillExtrusionHeightTransition: MGLTransition { get set }
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + fillExtrusionOpacity + +
    +
    +
    +
    +

    The opacity of the entire fill extrusion layer. This is rendered on a +per-layer, not per-feature, basis, and data-driven styling is not available.

    + +

    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 *fillExtrusionOpacity;
    + +
    +
    +

    Swift

    +
    var fillExtrusionOpacity: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

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

    + +

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

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (assign, readwrite, nonatomic)
    +    MGLTransition fillExtrusionOpacityTransition;
    + +
    +
    +

    Swift

    +
    var fillExtrusionOpacityTransition: MGLTransition { get set }
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + fillExtrusionPattern + +
    +
    +
    +
    +

    Name of image in style images to use for drawing image fill-extrusions. For +seamless patterns, image width and height must be a factor of two (2, 4, 8, +…, 512).

    + +

    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
    • +
    • 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 *fillExtrusionPattern;
    + +
    +
    +

    Swift

    +
    var fillExtrusionPattern: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

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

    + +

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

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (assign, readwrite, nonatomic)
    +    MGLTransition fillExtrusionPatternTransition;
    + +
    +
    +

    Swift

    +
    var fillExtrusionPatternTransition: MGLTransition { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

    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 upward. Set this property to nil to reset it to the default value.

    + +

    This attribute corresponds to the fill-extrusion-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 *fillExtrusionTranslation;
    + +
    +
    +

    Swift

    +
    var fillExtrusionTranslation: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

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

    + +

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

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (assign, readwrite, nonatomic)
    +    MGLTransition fillExtrusionTranslationTransition;
    + +
    +
    +

    Swift

    +
    var fillExtrusionTranslationTransition: MGLTransition { get set }
    + +
    +
    + +
    +
    +
  • +
  • + +
    +
    +
    +

    Controls the frame of reference for fillExtrusionTranslation.

    + +

    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 fillExtrusionTranslation is +non-nil. Otherwise, it is ignored.

    + +

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

    + +

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

    + +
      +
    • Constant MGLFillExtrusionTranslationAnchor values
    • +
    • Any of the following constant string values: + +
        +
      • map: The fill extrusion is translated relative to the map.
      • +
      • viewport: The fill extrusion 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 *fillExtrusionTranslationAnchor;
    + +
    +
    +

    Swift

    +
    var fillExtrusionTranslationAnchor: NSExpression! { get set }
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +