---
title: "MTCircleLayer | Mobile sdk | Mobile sdk ios | Ios"
description: "The circle style layer renders one or more filled circles on the map."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# MTCircleLayer

```
public class MTCircleLayer : MTLayer, @unchecked Sendable, Codable
```

```
extension MTCircleLayer: Equatable
```

The circle style layer renders one or more filled circles on the map.

[](#/Core%20properties)

### Core properties

-   `[identifier](#/s:11MapTilerSDK13MTCircleLayerC10identifierSSvp)`
    
    Unique layer identifier.
    
    #### Declaration
    
    Swift
    
    ```
    public var identifier: String
    ```
    
-   `[type](#/s:11MapTilerSDK13MTCircleLayerC4typeAA11MTLayerTypeOvp)`
    
    Type of the layer.
    
    #### Declaration
    
    Swift
    
    ```
    public private(set) var type: MTLayerType { get }
    ```
    
-   `[sourceIdentifier](#/s:11MapTilerSDK13MTCircleLayerC16sourceIdentifierSSvp)`
    
    Identifier of the source to be used for this layer.
    
    #### Declaration
    
    Swift
    
    ```
    public var sourceIdentifier: String
    ```
    
-   `[maxZoom](#/s:11MapTilerSDK13MTCircleLayerC7maxZoomSdSgvp)`
    
    The maximum zoom level for the layer. Optional number between 0 and 24. At zoom levels equal to or greater than the maxzoom, the layer will be hidden.
    
    #### Declaration
    
    Swift
    
    ```
    public var maxZoom: Double?
    ```
    
-   `[minZoom](#/s:11MapTilerSDK13MTCircleLayerC7minZoomSdSgvp)`
    
    The minimum zoom level for the layer. Optional number between 0 and 24. At zoom levels less than the minzoom, the layer will be hidden.
    
    #### Declaration
    
    Swift
    
    ```
    public var minZoom: Double?
    ```
    
-   `[sourceLayer](#/s:11MapTilerSDK13MTCircleLayerC06sourceE0SSSgvp)`
    
    Layer to use from a vector tile source. Required for vector tile sources; prohibited for all other source types, including GeoJSON sources.
    
    #### Declaration
    
    Swift
    
    ```
    public var sourceLayer: String?
    ```
    

[](#/Paint%20properties)

### Paint properties

-   `[blur](#/s:11MapTilerSDK13MTCircleLayerC4blurSdSgvp)`
    
    Amount to blur the circle. Default 0.
    
    #### Declaration
    
    Swift
    
    ```
    public var blur: Double?
    ```
    
-   `[color](#/s:11MapTilerSDK13MTCircleLayerC5colorAA12MTStyleValueOSgvp)`
    
    The fill color of the circle (constant or expression).
    
    #### Declaration
    
    Swift
    
    ```
    public var color: MTStyleValue?
    ```
    
-   `[opacity](#/s:11MapTilerSDK13MTCircleLayerC7opacitySdSgvp)`
    
    The opacity at which the circle will be drawn. Default 1.
    
    #### Declaration
    
    Swift
    
    ```
    public var opacity: Double?
    ```
    
-   `[radius](#/s:11MapTilerSDK13MTCircleLayerC6radiusAA12MTStyleValueOSgvp)`
    
    Circle radius in pixels (constant or expression).
    
    #### Declaration
    
    Swift
    
    ```
    public var radius: MTStyleValue?
    ```
    
-   `[strokeColor](#/s:11MapTilerSDK13MTCircleLayerC11strokeColorSo7UIColorCSgvp)`
    
    The stroke color of the circle’s outline.
    
    #### Declaration
    
    Swift
    
    ```
    public var strokeColor: UIColor?
    ```
    
-   `[strokeOpacity](#/s:11MapTilerSDK13MTCircleLayerC13strokeOpacitySdSgvp)`
    
    The opacity of the circle’s outline.
    
    #### Declaration
    
    Swift
    
    ```
    public var strokeOpacity: Double?
    ```
    
-   `[strokeWidth](#/s:11MapTilerSDK13MTCircleLayerC11strokeWidthSdSgvp)`
    
    The width of the circle’s outline in pixels.
    
    #### Declaration
    
    Swift
    
    ```
    public var strokeWidth: Double?
    ```
    
-   `[translate](#/s:11MapTilerSDK13MTCircleLayerC9translateSaySdGSgvp)`
    
    The geometry’s offset. Values are \[x, y\] where negatives indicate left and up.
    
    #### Declaration
    
    Swift
    
    ```
    public var translate: [Double]?
    ```
    
-   `[translateAnchor](#/s:11MapTilerSDK13MTCircleLayerC15translateAnchorAA0d9TranslateG0OSgvp)`
    
    Controls the frame of reference for translate.
    
    #### Declaration
    
    Swift
    
    ```
    public var translateAnchor: MTCircleTranslateAnchor?
    ```
    
-   `[pitchAlignment](#/s:11MapTilerSDK13MTCircleLayerC14pitchAlignmentAA0d5PitchG0OSgvp)`
    
    Orientation of circle when map is pitched. Defaults to “viewport”.
    
    #### Declaration
    
    Swift
    
    ```
    public var pitchAlignment: MTCirclePitchAlignment?
    ```
    
-   `[pitchScale](#/s:11MapTilerSDK13MTCircleLayerC10pitchScaleAA0d5PitchG0OSgvp)`
    
    Controls scaling behavior of the circle when the map is pitched. Defaults to “map”.
    
    #### Declaration
    
    Swift
    
    ```
    public var pitchScale: MTCirclePitchScale?
    ```
    

[](#/Layout%20properties)

### Layout properties

-   `[sortKey](#/s:11MapTilerSDK13MTCircleLayerC7sortKeySdSgvp)`
    
    Feature ordering value. Features with a higher sort key will appear above features with a lower sort key.
    
    #### Declaration
    
    Swift
    
    ```
    public var sortKey: Double?
    ```
    
-   `[visibility](#/s:11MapTilerSDK13MTCircleLayerC10visibilityAA17MTLayerVisibilityOSgvp)`
    
    Enum controlling whether this layer is displayed.
    
    #### Declaration
    
    Swift
    
    ```
    public var visibility: MTLayerVisibility?
    ```
    
-   `[initialFilter](#/s:11MapTilerSDK13MTCircleLayerC13initialFilterAA15MTPropertyValueOSgvp)`
    
    Optional initial filter to apply after the layer is added to the map.
    
    #### Declaration
    
    Swift
    
    ```
    public var initialFilter: MTPropertyValue?
    ```
    

[](#/Initial%20paint%20expressions%20%28applied%20after%20add%29)

### Initial paint expressions (applied after add)

-   `[circleColor](#/s:11MapTilerSDK13MTCircleLayerC11circleColorAA12MTStyleValueOSgvp)`
    
    Circle color can be a constant or an expression.
    
    #### Declaration
    
    Swift
    
    ```
    public var circleColor: MTStyleValue?
    ```
    
-   `[circleRadius](#/s:11MapTilerSDK13MTCircleLayerC12circleRadiusAA12MTStyleValueOSgvp)`
    
    Circle radius can be a constant or an expression.
    
    #### Declaration
    
    Swift
    
    ```
    public var circleRadius: MTStyleValue?
    ```
    
-   `[filterExpression](#/s:11MapTilerSDK13MTCircleLayerC16filterExpressionAA15MTPropertyValueOSgvp)`
    
    Filter expression to be embedded inline in layer JSON.
    
    #### Declaration
    
    Swift
    
    ```
    public var filterExpression: MTPropertyValue?
    ```
    
-   `[filter](#/s:11MapTilerSDK13MTCircleLayerC6filterAA15MTPropertyValueOSgvp)`
    
    Optional filter to apply to this layer.
    
    #### Declaration
    
    Swift
    
    ```
    public var filter: MTPropertyValue?
    ```
    

[](#/Initializers)

### Initializers

-   `[init(identifier:sourceIdentifier:)](#/s:11MapTilerSDK13MTCircleLayerC10identifier16sourceIdentifierACSS_SStcfc)`
    
    Initializes the layer with unique identifier and source identifier.
    
    #### Declaration
    
    Swift
    
    ```
    public init(
        identifier: String,
        sourceIdentifier: String
    )
    ```
    
-   `[init(identifier:sourceIdentifier:maxZoom:minZoom:sourceLayer:blur:color:opacity:radius:strokeColor:strokeOpacity:strokeWidth:translate:translateAnchor:sortKey:visibility:)](#/s:11MapTilerSDK13MTCircleLayerC10identifier16sourceIdentifier7maxZoom03minJ00gE04blur5color7opacity6radius11strokeColor0P7Opacity0P5Width9translate0T6Anchor7sortKey10visibilityACSS_SSSdSgATSSSgAtA12MTStyleValueOSgAtXSo7UIColorCSgA2TSaySdGSgAA0d9TranslateU0OSgAtA17MTLayerVisibilityOSgtcfc)`
    
    Initializes the layer with all options.
    
    #### Declaration
    
    Swift
    
    ```
    public init(
        identifier: String,
        sourceIdentifier: String,
        maxZoom: Double? = nil,
        minZoom: Double? = nil,
        sourceLayer: String? = nil,
        blur: Double? = 0.0,
        color: MTStyleValue? = nil,
        opacity: Double? = 1.0,
        radius: MTStyleValue? = nil,
        strokeColor: UIColor? = .black,
        strokeOpacity: Double? = 1.0,
        strokeWidth: Double? = 0.0,
        translate: [Double]? = [0.0, 0.0],
        translateAnchor: MTCircleTranslateAnchor? = .map,
        sortKey: Double? = nil,
        visibility: MTLayerVisibility? = .visible
    )
    ```
    

[](#/Codable)

### Codable

-   `[init(from:)](#/s:11MapTilerSDK13MTCircleLayerC4fromACs7Decoder_p_tKcfc)`
    
    Initializes the layer from the decoder.
    
    #### Declaration
    
    Swift
    
    ```
    public required init(from decoder: any Decoder) throws
    ```
    
-   `[encode(to:)](#/s:SE6encode2toys7Encoder_p_tKF)`
    
    #### Declaration
    
    Swift
    
    ```
    public func encode(to encoder: Encoder) throws
    ```
    
-   `[addToMap(_:)](#/s:11MapTilerSDK13MTCircleLayerC05addToA0yyAA9MTMapViewCF)`
    
    Adds layer to map DSL style.
    
    Prefer `[addLayer(_:)](https://docs.maptiler.com/mobile-sdk/ios/api/Classes/MTStyle/#/s:11MapTilerSDK7MTStyleC8addLayeryyAA7MTLayer_pYaKF)` on MTMapView instead.
    
    #### Declaration
    
    Swift
    
    ```
    public func addToMap(_ mapView: MTMapView)
    ```
    

[](#/Modifiers%20%28for%20DSL%20chaining%29.%20Not%20for%20external%20use.)

### Modifiers (for DSL chaining). Not for external use.

-   `[maxZoom(_:)](#/s:11MapTilerSDK13MTCircleLayerC7maxZoomyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func maxZoom(_ value: Double) -> Self
    ```
    
-   `[minZoom(_:)](#/s:11MapTilerSDK13MTCircleLayerC7minZoomyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func minZoom(_ value: Double) -> Self
    ```
    
-   `[sourceLayer(_:)](#/s:11MapTilerSDK13MTCircleLayerC06sourceE0yACXDSSF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func sourceLayer(_ value: String) -> Self
    ```
    
-   `[blur(_:)](#/s:11MapTilerSDK13MTCircleLayerC4bluryACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func blur(_ value: Double) -> Self
    ```
    
-   `[color(_:)](#/s:11MapTilerSDK13MTCircleLayerC5coloryACXDSo7UIColorCF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func color(_ value: UIColor) -> Self
    ```
    
-   `[opacity(_:)](#/s:11MapTilerSDK13MTCircleLayerC7opacityyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func opacity(_ value: Double) -> Self
    ```
    
-   `[radius(_:)](#/s:11MapTilerSDK13MTCircleLayerC6radiusyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func radius(_ value: Double) -> Self
    ```
    
-   `[strokeColor(_:)](#/s:11MapTilerSDK13MTCircleLayerC11strokeColoryACXDSo7UIColorCF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func strokeColor(_ value: UIColor) -> Self
    ```
    
-   `[strokeOpacity(_:)](#/s:11MapTilerSDK13MTCircleLayerC13strokeOpacityyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func strokeOpacity(_ value: Double) -> Self
    ```
    
-   `[strokeWidth(_:)](#/s:11MapTilerSDK13MTCircleLayerC11strokeWidthyACXDSdF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func strokeWidth(_ value: Double) -> Self
    ```
    
-   `[translate(_:)](#/s:11MapTilerSDK13MTCircleLayerC9translateyACXDSaySdGF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func translate(_ value: [Double]) -> Self
    ```
    
-   `[translateAnchor(_:)](#/s:11MapTilerSDK13MTCircleLayerC15translateAnchoryACXDAA0d9TranslateG0OF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func translateAnchor(_ value: MTCircleTranslateAnchor) -> Self
    ```
    
-   `[sortKey(_:)](#/s:11MapTilerSDK13MTCircleLayerC7sortKeyyACXDSdF)`
    
    Sets the sort key for feature ordering.
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func sortKey(_ value: Double) -> Self
    ```
    
    #### Parameters
    
    <table class="graybox"><tbody><tr><td><code><em>value</em></code></td><td><div><p>Sort key; higher draws above lower.</p></div></td></tr></tbody></table>
    
-   `[visibility(_:)](#/s:11MapTilerSDK13MTCircleLayerC10visibilityyACXDAA17MTLayerVisibilityOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func visibility(_ value: MTLayerVisibility) -> Self
    ```
    
-   `[pitchAlignment(_:)](#/s:11MapTilerSDK13MTCircleLayerC14pitchAlignmentyACXDAA0d5PitchG0OF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func pitchAlignment(_ value: MTCirclePitchAlignment) -> Self
    ```
    
-   `[pitchScale(_:)](#/s:11MapTilerSDK13MTCircleLayerC10pitchScaleyACXDAA0d5PitchG0OF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func pitchScale(_ value: MTCirclePitchScale) -> Self
    ```
    
-   `[withFilter(_:)](#/s:11MapTilerSDK13MTCircleLayerC10withFilteryACXDAA15MTPropertyValueOF)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func withFilter(_ value: MTPropertyValue) -> Self
    ```
    
-   `[paintColorExpression(_:)](#/s:11MapTilerSDK13MTCircleLayerC20paintColorExpressionyACXDAA15MTPropertyValueOF)`
    
    Sets a circle color expression (e.g., step).
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func paintColorExpression(_ expr: MTPropertyValue) -> Self
    ```
    
    #### Parameters
    
    <table class="graybox"><tbody><tr><td><code><em>expr</em></code></td><td><div><p>Expression to drive circle color.</p></div></td></tr></tbody></table>
    
-   `[paintRadiusExpression(_:)](#/s:11MapTilerSDK13MTCircleLayerC21paintRadiusExpressionyACXDAA15MTPropertyValueOF)`
    
    Sets a circle radius expression (e.g., step).
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func paintRadiusExpression(_ expr: MTPropertyValue) -> Self
    ```
    
    #### Parameters
    
    <table class="graybox"><tbody><tr><td><code><em>expr</em></code></td><td><div><p>Expression to drive circle radius.</p></div></td></tr></tbody></table>
    
-   `[paintColor(_:)](#/s:11MapTilerSDK13MTCircleLayerC10paintColoryACXDSo7UIColorCF)`
    
    Sets a constant circle color value.
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func paintColor(_ color: UIColor) -> Self
    ```
    
    #### Parameters
    
    <table class="graybox"><tbody><tr><td><code><em>color</em></code></td><td><div><p>UIColor value.</p></div></td></tr></tbody></table>
    
-   `[paintRadius(_:)](#/s:11MapTilerSDK13MTCircleLayerC11paintRadiusyACXDSdF)`
    
    Sets a constant circle radius value in pixels.
    
    #### Declaration
    
    Swift
    
    ```
    @discardableResult
    public func paintRadius(_ value: Double) -> Self
    ```
    
    #### Parameters
    
    <table class="graybox"><tbody><tr><td><code><em>value</em></code></td><td><div><p>Radius in pixels.</p></div></td></tr></tbody></table>
    
-   `[==(_:_:)](#/s:SQ2eeoiySbx_xtFZ)`
    
    #### Declaration
    
    Swift
    
    ```
    public static func == (lhs: MTCircleLayer, rhs: MTCircleLayer) -> Bool
    ```
