MGLCircleStyleLayer

@interface MGLCircleStyleLayer : MGLVectorStyleLayer

An MGLCircleStyleLayer is a style layer that renders one or more filled circles on the map.

Use a circle style layer to configure the visual appearance of point or point collection features. These features can come from vector tiles loaded by an MGLVectorTileSource object, or they can be MGLPointAnnotation, MGLPointFeature, MGLPointCollection, or MGLPointCollectionFeature instances in an MGLShapeSource or MGLComputedShapeSource object.

A circle style layer renders circles whose radii are measured in screen units. To display circles on the map whose radii correspond to real-world distances, use many-sided regular polygons and configure their appearance using an MGLFillStyleLayer object.

You can access an existing circle 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 circle style layer and add it to the style using a method such as -[MGLStyle addLayer:].

Example

let layer = MGLCircleStyleLayer(identifier: "circles", source: population)
layer.sourceLayerIdentifier = "population"
layer.circleColor = NSExpression(forConstantValue: UIColor.green)
layer.circleRadius = NSExpression(format: "mgl_interpolate:withCurveType:parameters:stops:($zoomLevel, 'exponential', 1.75, %@)",
                              [12: 2,
                               22: 180])
layer.circleOpacity = NSExpression(forConstantValue: 0.7)
layer.predicate = NSPredicate(format: "%K == %@", "marital-status", "married")
mapView.style?.addLayer(layer)

-initWithIdentifier:source:

Returns a circle 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.

Accessing the Layout Attributes

circleSortKey

Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.

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

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleSortKey;

Swift

var circleSortKey: NSExpression! { get set }

Accessing the Paint Attributes

circleBlur

Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity.

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
  • 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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleBlur;

Swift

var circleBlur: NSExpression! { get set }

circleBlurTransition

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

This property corresponds to the circle-blur-transition property in the style JSON file format.

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleBlurTransition;

Swift

var circleBlurTransition: MGLTransition { get set }

circleColor

The fill color of the circle.

The default value of this property is an expression that evaluates to UIColor.blackColor. 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 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 and/or feature attributes

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleColor;

Swift

var circleColor: NSExpression! { get set }

circleColorTransition

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

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

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleColorTransition;

Swift

var circleColorTransition: MGLTransition { get set }

circleOpacity

The opacity at which the circle 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 and/or feature attributes

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleOpacity;

Swift

var circleOpacity: NSExpression! { get set }

circleOpacityTransition

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

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

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleOpacityTransition;

Swift

var circleOpacityTransition: MGLTransition { get set }

circlePitchAlignment

Orientation of circle when map is pitched.

The default value of this property is an expression that evaluates to viewport. 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 MGLCirclePitchAlignment values
  • Any of the following constant string values:
  • map: The circle is aligned to the plane of the map.
  • viewport: The circle is aligned to the plane 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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circlePitchAlignment;

Swift

var circlePitchAlignment: NSExpression! { get set }

circleRadius

Circle radius.

This property is measured in points.

The default value of this property is an expression that evaluates to the float 5. 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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleRadius;

Swift

var circleRadius: NSExpression! { get set }

circleRadiusTransition

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

This property corresponds to the circle-radius-transition property in the style JSON file format.

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleRadiusTransition;

Swift

var circleRadiusTransition: MGLTransition { get set }

circleScaleAlignment

Controls the scaling behavior of the circle when the map is pitched.

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 attribute corresponds to the circle-pitch-scale layout property in the GL Style Specification.

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

  • Constant MGLCircleScaleAlignment values
  • Any of the following constant string values:
  • map: Circles are scaled according to their apparent distance to the camera.
  • viewport: Circles are not scaled.
  • 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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleScaleAlignment;

Swift

var circleScaleAlignment: NSExpression! { get set }

circleStrokeColor

The stroke color of the circle.

The default value of this property is an expression that evaluates to UIColor.blackColor. 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 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 and/or feature attributes

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleStrokeColor;

Swift

var circleStrokeColor: NSExpression! { get set }

circleStrokeColorTransition

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

This property corresponds to the circle-stroke-color-transition property in the style JSON file format.

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleStrokeColorTransition;

Swift

var circleStrokeColorTransition: MGLTransition { get set }

circleStrokeOpacity

The opacity of the circle’s stroke.

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

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleStrokeOpacity;

Swift

var circleStrokeOpacity: NSExpression! { get set }

circleStrokeOpacityTransition

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

This property corresponds to the circle-stroke-opacity-transition property in the style JSON file format.

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleStrokeOpacityTransition;

Swift

var circleStrokeOpacityTransition: MGLTransition { get set }

circleStrokeWidth

The width of the circle’s stroke. Strokes are placed outside of the circleRadius.

This property is measured in points.

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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleStrokeWidth;

Swift

var circleStrokeWidth: NSExpression! { get set }

circleStrokeWidthTransition

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

This property corresponds to the circle-stroke-width-transition property in the style JSON file format.

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleStrokeWidthTransition;

Swift

var circleStrokeWidthTransition: MGLTransition { get set }

circleTranslation

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

This attribute corresponds to the circle-translate layout property in the GL 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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleTranslation;

Swift

var circleTranslation: NSExpression! { get set }

circleTranslationTransition

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

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

Declaration

Objective-C

@property (nonatomic, assign, unsafe_unretained, readwrite)
MGLTransition circleTranslationTransition;

Swift

var circleTranslationTransition: MGLTransition { get set }

circleTranslationAnchor

Controls the frame of reference for circleTranslation.

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

This attribute corresponds to the circle-translate-anchor layout property in the GL Style Specification.

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

  • Constant MGLCircleTranslationAnchor values
  • Any of the following constant string values:
  • map: The circle is translated relative to the map.
  • viewport: The circle 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 (nonatomic, assign, unsafe_unretained, readwrite, null_resettable)
NSExpression *circleTranslationAnchor;

Swift

var circleTranslationAnchor: NSExpression! { get set }
iOS SDK

SDK JS Reference

On this page