CircleLayerDescriptor

data class CircleLayerDescriptor(var id: String, var source: String, var sourceLayer: String? = null, var paint: CircleLayerPaint = CircleLayerPaint( fill = FillPaint(), stroke = StrokePaint(), circle = CirclePaint() ), var filter: Expression? = null, var stencilOnly: Boolean = false, var useGlRendering: Boolean = true, var timing: LayerTiming? = null, var maskLayerIds: List<String> = emptyList(), var maskLayerId: String? = null, var layerMask: LayerMaskSpec? = null, var stencilLayerMask: StencilLayerMaskSpec? = null) : VectorLayerDescriptor<CircleLayerPaint> , LayerEventEmitter

Descriptor for a Mapbox circle layer: points rendered as filled disks with optional stroke, driven by a vector or GeoJSON source.

Register the backing source first (com.xweather.mapsgl.map.MapController.addSource), then add this layer with com.xweather.mapsgl.map.MapController.addLayer. The layer is implemented as a VectorTileLayer over Mapbox’s native circle layer.

Sources

Paint is held in paint (CircleLayerPaint): fill color, stroke, and circle radius map to Mapbox circle-color, circle-radius, circle-stroke-*, etc. Use com.xweather.mapsgl.style.StyleValue and Expression for data-driven styling (e.g. magnitude-based radius).

Stacking: the beforeID argument to com.xweather.mapsgl.map.MapController.addLayer controls insertion order relative to existing style layers (see that method’s KDoc).

See also

Constructors

Link copied to clipboard
constructor(id: String, source: String, sourceLayer: String? = null, paint: CircleLayerPaint = CircleLayerPaint( fill = FillPaint(), stroke = StrokePaint(), circle = CirclePaint() ), filter: Expression? = null, stencilOnly: Boolean = false, useGlRendering: Boolean = true, timing: LayerTiming? = null, maskLayerIds: List<String> = emptyList(), maskLayerId: String? = null, layerMask: LayerMaskSpec? = null, stencilLayerMask: StencilLayerMaskSpec? = null)

Properties

Link copied to clipboard
open override var filter: Expression?

Optional Mapbox filter expression; combined with source-layer filtering when sourceLayer is set.

Link copied to clipboard
open override var id: String

Stable layer identifier; must be unique within the map controller.

Link copied to clipboard
open override var layerMask: LayerMaskSpec?

JS-style mask shorthand (mask: { layerIds: [...] }). Resolved to stencilLayerMask when stencilLayerMask is unset. Apple's maskConfiguration maps here / to stencilLayerMask.

Link copied to clipboard
open override var maskLayerId: String?

Single mask layer id shorthand. Lowest precedence among mask fields.

Link copied to clipboard
open override var maskLayerIds: List<String>

List of mask layer ids (JS mask.layerIds). Lower precedence than layerMask.

Link copied to clipboard
open override var paint: CircleLayerPaint

Circle fill, stroke, and geometry styling converted to Mapbox style JSON.

Link copied to clipboard
open override var source: String

Identifier of an already-added source whose features this layer draws.

Link copied to clipboard
open override var sourceLayer: String?

For vector tiles, the source layer name inside the MVT; for GeoJSON-only sources, use null.

Link copied to clipboard

Advanced custom stencil mask. Takes precedence over layerMask / maskLayerIds / maskLayerId.

Link copied to clipboard
open override var stencilOnly: Boolean

When true, MapsGL does not register a Mapbox fill / line / circle / symbol / heatmap style layer. The com.xweather.mapsgl.layers.tile.VectorTileLayer still exists for tile/GeoJSON consumers, MVT fetch (e.g. com.xweather.mapsgl.map.mapbox.GlStencilCustomMaskCoordinator), and GLES stencil mesh build in com.xweather.mapsgl.renderers.TileLayerRenderer — only screen drawing via Mapbox paint is skipped.

Link copied to clipboard
open override var timing: LayerTiming?

Optional per-layer timing (Apple timing). When non-null, com.xweather.mapsgl.map.MapController.addLayer copies these fields onto the created com.xweather.mapsgl.layers.tile.TileLayer.timing. Null keeps the layer's existing defaults (time-series sources may still enable interval mode).

Link copied to clipboard
open override val type: LayerType

Discriminator matching LayerType.

Link copied to clipboard
open override var useGlRendering: Boolean

When true, eligible fill/line/circle/symbol layers draw via MapsGL GLES instead of Mapbox style layers. MVT sources use com.xweather.mapsgl.renderers.VectorFillLayerRenderer / com.xweather.mapsgl.renderers.VectorLineLayerRenderer / etc. GeoJSON fill, line, circle, symbol, and heatmap layers also support GLES when this flag is set.

Functions

Link copied to clipboard
open override fun off(eventName: String)
Link copied to clipboard
open override fun on(eventName: String, callback: (Any?) -> Unit)
Link copied to clipboard
open override fun trigger(eventName: String, data: Any?)