ModelLayer

@_documentation(visibility: public)
@_spi(Experimental)
public struct ModelLayer : Layer

A layer to render 3D Models.

  • id

    Unique layer name

    Declaration

    Swift

    @_documentation(visibility: public)
    public var id: String
  • Rendering type of this layer.

    Declaration

    Swift

    @_documentation(visibility: public)
    public let type: LayerType
  • An expression specifying conditions on source features. Only features that match the filter are displayed.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var filter: Expression?
  • Name of a source description to be used for this layer. Required for all layer types except BackgroundLayer, SkyLayer, and LocationIndicatorLayer.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var source: String?
  • Layer to use from a vector tile source.

    Required for vector tile sources. Prohibited for all other source types, including GeoJSON sources.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var sourceLayer: String?
  • The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var slot: String?
  • The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var minZoom: Double?
  • The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var maxZoom: Double?
  • Whether this layer is displayed.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var visibility: Value<Visibility>
  • Model to render.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelId: Value<String>?
  • Intensity of the ambient occlusion if present in the 3D model.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelAmbientOcclusionIntensity: Value<Double>?
  • Transition options for modelAmbientOcclusionIntensity.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelAmbientOcclusionIntensityTransition: StyleTransition?
  • Enable/Disable shadow casting for this layer

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelCastShadows: Value<Bool>?
  • The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelColor: Value<StyleColor>?
  • Transition options for modelColor.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelColorTransition: StyleTransition?
  • Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model’s colors. Higher number will present a higher model-color contribution in mix.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelColorMixIntensity: Value<Double>?
  • Transition options for modelColorMixIntensity.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelColorMixIntensityTransition: StyleTransition?
  • This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map’s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelCutoffFadeRange: Value<Double>?
  • Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelEmissiveStrength: Value<Double>?
  • Transition options for modelEmissiveStrength.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelEmissiveStrengthTransition: StyleTransition?
  • Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelHeightBasedEmissiveStrengthMultiplier: Value<[Double]>?
  • Declaration

    Swift

    @_documentation(visibility: public)
    public var modelHeightBasedEmissiveStrengthMultiplierTransition: StyleTransition?
  • The opacity of the model layer.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelOpacity: Value<Double>?
  • Transition options for modelOpacity.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelOpacityTransition: StyleTransition?
  • Enable/Disable shadow receiving for this layer

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelReceiveShadows: Value<Bool>?
  • The rotation of the model in euler angles [lon, lat, z].

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelRotation: Value<[Double]>?
  • Transition options for modelRotation.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelRotationTransition: StyleTransition?
  • Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelRoughness: Value<Double>?
  • Transition options for modelRoughness.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelRoughnessTransition: StyleTransition?
  • The scale of the model.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelScale: Value<[Double]>?
  • Transition options for modelScale.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelScaleTransition: StyleTransition?
  • Defines scaling mode. Only applies to location-indicator type layers.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelScaleMode: Value<ModelScaleMode>?
  • The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelTranslation: Value<[Double]>?
  • Transition options for modelTranslation.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelTranslationTransition: StyleTransition?
  • Defines rendering behavior of model in respect to other 3D scene objects.

    Declaration

    Swift

    @_documentation(visibility: public)
    public var modelType: Value<ModelType>?
  • Undocumented

    Declaration

    Swift

    @_documentation(visibility: public)
    public init(id: String, source: String)
  • Declaration

    Swift

    public func encode(to encoder: Encoder) throws
  • Declaration

    Swift

    public init(from decoder: Decoder) throws