GridLayerDescriptor

data class GridLayerDescriptor(var id: String, var source: String, var sourceLayer: String? = null, var mask: MaskLayerKind = MaskLayerKind.NONE, var paint: GridLayerPaint = GridLayerPaint( icon = IconPaint(), text = emptyList() ), var filter: Expression? = null, var quality: DataQuality = DataQuality.medium, var maskLayerIds: List<String> = emptyList(), var maskLayerId: String? = null, var layerMask: LayerMaskSpec? = null, var stencilLayerMask: StencilLayerMaskSpec? = null, var maskCountryIso3166Alpha2: String? = null, var stencilOnly: Boolean = false, var useGlRendering: Boolean = false, var timing: LayerTiming? = null) : VectorLayerDescriptor<GridLayerPaint> , LayerEventEmitter

Descriptor for symbol-style layers that share GridLayerPaint with SymbolLayerDescriptor but add masking and data quality knobs used by gridded and dense icon workflows (e.g. encoded-grid sidecars).

Register the source, then com.xweather.mapsgl.map.MapController.addLayer. mask participates in land/water masking where the map pipeline supports it; quality hints requested tile or sampling fidelity for applicable sources. The initializer wires paint.sample’s event emitter to this descriptor for paint-driven events.

See also

Constructors

Link copied to clipboard
constructor(id: String, source: String, sourceLayer: String? = null, mask: MaskLayerKind = MaskLayerKind.NONE, paint: GridLayerPaint = GridLayerPaint( icon = IconPaint(), text = emptyList() ), filter: Expression? = null, quality: DataQuality = DataQuality.medium, maskLayerIds: List<String> = emptyList(), maskLayerId: String? = null, layerMask: LayerMaskSpec? = null, stencilLayerMask: StencilLayerMaskSpec? = null, maskCountryIso3166Alpha2: String? = null, stencilOnly: Boolean = false, useGlRendering: Boolean = false, timing: LayerTiming? = null)

Properties

Link copied to clipboard
open override var filter: Expression?

Optional feature filter.

Link copied to clipboard
open override var id: String

Unique layer id.

Link copied to clipboard
open override var layerMask: LayerMaskSpec?

JS-style mask convenience; takes precedence over maskLayerIds and maskLayerId when provided.

Link copied to clipboard

Land/water/none mask for symbol placement.

Link copied to clipboard
open override var maskLayerId: String?

Single mask layer id shorthand (JS mask: "layerId" on a layer). Lowest precedence among stencil mask fields: after stencilLayerMask, layerMask, and maskLayerIds.

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

JS-style convenience for custom stencil masks: mask: { layerIds: ["admin-mask"] }

Link copied to clipboard
open override var paint: GridLayerPaint

Icon, text, optional sample grid, and fill/stroke.

Link copied to clipboard

Requested DataQuality for tile or asset resolution where used.

Link copied to clipboard
open override var source: String

Backing source id.

Link copied to clipboard
open override var sourceLayer: String?

MVT layer name, or null for GeoJSON when applicable.

Link copied to clipboard

Advanced custom stencil mask configuration. Takes precedence over maskLayerIds when set.

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?)