UNPKG

@mapbox/mapbox-gl-style-spec

Version:

a specification for mapbox gl styles

1,388 lines (1,387 loc) 79.4 kB
import Point from '@mapbox/point-geometry'; type StyleReference = Record<any, any>; declare const _default: StyleReference; /** * Format a Mapbox GL Style. Returns a stringified style with its keys * sorted in the same order as the reference style. * * The optional `space` argument is passed to * [`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) * to generate formatted output. * * If `space` is unspecified, a default of `2` spaces will be used. * * @private * @param {Object} style a Mapbox GL Style * @param {number} [space] space argument to pass to `JSON.stringify` * @returns {string} stringified formatted JSON * @example * var fs = require('fs'); * var format = require('mapbox-gl-style-spec').format; * var style = fs.readFileSync('./source.json', 'utf8'); * fs.writeFileSync('./dest.json', format(style)); * fs.writeFileSync('./dest.min.json', format(style, 0)); */ export declare function format(style: any, space?: number): string; /** * Migrate a Mapbox GL Style to the latest version. * * @private * @alias migrate * @param {object} style a Mapbox GL Style * @returns {Object} a migrated style * @example * var fs = require('fs'); * var migrate = require('mapbox-gl-style-spec').migrate; * var style = fs.readFileSync('./style.json', 'utf8'); * fs.writeFileSync('./style.json', JSON.stringify(migrate(style))); */ declare function _default$1(style: any): any; declare function _default$2(style: any): any; type ColorSpecification = string; type FormattedSpecification = string; type ResolvedImageSpecification = string; type PromoteIdSpecification = { [_: string]: string | ExpressionSpecification; } | string | ExpressionSpecification; type FilterSpecification = ExpressionSpecification | [ "has", string ] | [ "!has", string ] | [ "==", string, string | number | boolean ] | [ "!=", string, string | number | boolean ] | [ ">", string, string | number | boolean ] | [ ">=", string, string | number | boolean ] | [ "<", string, string | number | boolean ] | [ "<=", string, string | number | boolean ] | Array<string | FilterSpecification>; type TransitionSpecification = { duration?: number; delay?: number; }; type PropertyFunctionStop<T> = [ number, T ]; type ZoomAndPropertyFunctionStop<T> = [ { zoom: number; value: string | number | boolean; }, T ]; type FunctionSpecification<T> = { stops: Array<PropertyFunctionStop<T> | ZoomAndPropertyFunctionStop<T>>; base?: number; property?: string; type?: "identity" | "exponential" | "interval" | "categorical"; colorSpace?: "rgb" | "lab" | "hcl"; default?: T; }; type CameraFunctionSpecification<T> = { type: "exponential"; stops: Array<[ number, T ]>; } | { type: "interval"; stops: Array<[ number, T ]>; }; type SourceFunctionSpecification<T> = { type: "exponential"; stops: Array<[ number, T ]>; property: string; default?: T; } | { type: "interval"; stops: Array<[ number, T ]>; property: string; default?: T; } | { type: "categorical"; stops: Array<[ string | number | boolean, T ]>; property: string; default?: T; } | { type: "identity"; property: string; default?: T; }; type CompositeFunctionSpecification<T> = { type: "exponential"; stops: Array<[ { zoom: number; value: number; }, T ]>; property: string; default?: T; } | { type: "interval"; stops: Array<[ { zoom: number; value: number; }, T ]>; property: string; default?: T; } | { type: "categorical"; stops: Array<[ { zoom: number; value: string | number | boolean; }, T ]>; property: string; default?: T; }; type ExpressionSpecification = [ string, ...any[] ]; type PropertyValueSpecification<T> = T | CameraFunctionSpecification<T> | ExpressionSpecification; type DataDrivenPropertyValueSpecification<T> = T | FunctionSpecification<T> | CameraFunctionSpecification<T> | SourceFunctionSpecification<T> | CompositeFunctionSpecification<T> | ExpressionSpecification | (T extends Array<infer U> ? Array<U | ExpressionSpecification> : never); type StyleSpecification = { "version": 8; "fragment"?: boolean; "name"?: string; "metadata"?: unknown; "center"?: Array<number>; "zoom"?: number; "bearing"?: number; "pitch"?: number; "light"?: LightSpecification; "lights"?: Array<LightsSpecification>; "terrain"?: TerrainSpecification | null | undefined; "fog"?: FogSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "snow"?: SnowSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "rain"?: RainSpecification; "camera"?: CameraSpecification; "color-theme"?: ColorThemeSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "indoor"?: IndoorSpecification; "imports"?: Array<ImportSpecification>; /** * @experimental This property is experimental and subject to change in future versions. */ "iconsets"?: IconsetsSpecification; "schema"?: SchemaSpecification; "sources": SourcesSpecification; "sprite"?: string; "glyphs"?: string; "transition"?: TransitionSpecification; "projection"?: ProjectionSpecification; "layers": Array<LayerSpecification>; "models"?: ModelsSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "featuresets"?: FeaturesetsSpecification; }; type SourcesSpecification = { [_: string]: SourceSpecification; }; type ModelsSpecification = { [_: string]: ModelSpecification; }; type IconsetsSpecification = { [_: string]: IconsetSpecification; }; type LightSpecification = { "anchor"?: PropertyValueSpecification<"map" | "viewport">; "position"?: PropertyValueSpecification<[ number, number, number ]>; "position-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; }; type TerrainSpecification = { "source": string; "exaggeration"?: PropertyValueSpecification<number>; "exaggeration-transition"?: TransitionSpecification; }; type FogSpecification = { "range"?: PropertyValueSpecification<[ number, number ]>; "range-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "high-color"?: PropertyValueSpecification<ColorSpecification>; "high-color-transition"?: TransitionSpecification; "high-color-use-theme"?: PropertyValueSpecification<string>; "space-color"?: PropertyValueSpecification<ColorSpecification>; "space-color-transition"?: TransitionSpecification; "space-color-use-theme"?: PropertyValueSpecification<string>; "horizon-blend"?: PropertyValueSpecification<number>; "horizon-blend-transition"?: TransitionSpecification; "star-intensity"?: PropertyValueSpecification<number>; "star-intensity-transition"?: TransitionSpecification; "vertical-range"?: PropertyValueSpecification<[ number, number ]>; "vertical-range-transition"?: TransitionSpecification; }; type SnowSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "density"?: PropertyValueSpecification<number>; "density-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "opacity"?: PropertyValueSpecification<number>; "opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette"?: PropertyValueSpecification<number>; "vignette-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette-color"?: PropertyValueSpecification<ColorSpecification>; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "center-thinning"?: PropertyValueSpecification<number>; "center-thinning-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "direction"?: PropertyValueSpecification<[ number, number ]>; "direction-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "flake-size"?: PropertyValueSpecification<number>; "flake-size-transition"?: TransitionSpecification; }; type RainSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "density"?: PropertyValueSpecification<number>; "density-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "opacity"?: PropertyValueSpecification<number>; "opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette"?: PropertyValueSpecification<number>; "vignette-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette-color"?: PropertyValueSpecification<ColorSpecification>; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "center-thinning"?: PropertyValueSpecification<number>; "center-thinning-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "direction"?: PropertyValueSpecification<[ number, number ]>; "direction-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "droplet-size"?: PropertyValueSpecification<[ number, number ]>; "droplet-size-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "distortion-strength"?: PropertyValueSpecification<number>; "distortion-strength-transition"?: TransitionSpecification; }; type CameraSpecification = { "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">; "camera-projection-transition"?: TransitionSpecification; }; type ColorThemeSpecification = { "data"?: ExpressionSpecification; }; type ProjectionSpecification = { "name": "albers" | "equalEarth" | "equirectangular" | "lambertConformalConic" | "mercator" | "naturalEarth" | "winkelTripel" | "globe"; "center"?: [ number, number ]; "parallels"?: [ number, number ]; }; type ImportSpecification = { "id": string; "url": string; "config"?: ConfigSpecification; "data"?: StyleSpecification; "color-theme"?: ColorThemeSpecification | null | undefined; }; type IndoorSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "floorplanFeaturesetId"?: ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "buildingFeaturesetId"?: ExpressionSpecification; }; type ConfigSpecification = { [_: string]: unknown; }; type SchemaSpecification = { [_: string]: OptionSpecification; }; type OptionSpecification = { "default": ExpressionSpecification; "type"?: "string" | "number" | "boolean" | "color"; "array"?: boolean; "minValue"?: number; "maxValue"?: number; "stepValue"?: number; "values"?: Array<unknown>; "metadata"?: unknown; }; type FeaturesetsSpecification = { [_: string]: FeaturesetSpecification; }; type FeaturesetSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "metadata"?: unknown; /** * @experimental This property is experimental and subject to change in future versions. */ "selectors"?: Array<SelectorSpecification>; }; type SelectorSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "layer": string; /** * @experimental This property is experimental and subject to change in future versions. */ "properties"?: SelectorPropertySpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "featureNamespace"?: string; /** * @experimental This property is experimental and subject to change in future versions. */ "_uniqueFeatureID"?: boolean; }; type SelectorPropertySpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ [_: string]: unknown; }; type VectorSourceSpecification = { "type": "vector"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; /** * @experimental This property is experimental and subject to change in future versions. */ "extra_bounds"?: Array<[ number, number, number, number ]>; "scheme"?: "xyz" | "tms"; "minzoom"?: number; "maxzoom"?: number; "attribution"?: string; "promoteId"?: PromoteIdSpecification; "volatile"?: boolean; [_: string]: unknown; }; type RasterSourceSpecification = { "type": "raster"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; /** * @experimental This property is experimental and subject to change in future versions. */ "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "scheme"?: "xyz" | "tms"; "attribution"?: string; "volatile"?: boolean; [_: string]: unknown; }; type RasterDEMSourceSpecification = { "type": "raster-dem"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; /** * @experimental This property is experimental and subject to change in future versions. */ "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "attribution"?: string; "encoding"?: "terrarium" | "mapbox"; "volatile"?: boolean; [_: string]: unknown; }; type RasterArraySourceSpecification = { "type": "raster-array"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; /** * @experimental This property is experimental and subject to change in future versions. */ "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "attribution"?: string; "rasterLayers"?: unknown; "volatile"?: boolean; [_: string]: unknown; }; type GeoJSONSourceSpecification = { "type": "geojson"; "data"?: GeoJSON.GeoJSON | string; "maxzoom"?: number; "minzoom"?: number; "attribution"?: string; "buffer"?: number; "filter"?: unknown; "tolerance"?: number; "cluster"?: boolean; "clusterRadius"?: number; "clusterMaxZoom"?: number; "clusterMinPoints"?: number; "clusterProperties"?: unknown; "lineMetrics"?: boolean; "generateId"?: boolean; "promoteId"?: PromoteIdSpecification; "dynamic"?: boolean; }; type VideoSourceSpecification = { "type": "video"; "urls": Array<string>; "coordinates": [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; }; type ImageSourceSpecification = { "type": "image"; "url"?: string; "coordinates": [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; }; type ModelSourceSpecification = { "type": "model" | "batched-model"; "maxzoom"?: number; "minzoom"?: number; "tiles"?: Array<string>; }; type SourceSpecification = VectorSourceSpecification | RasterSourceSpecification | RasterDEMSourceSpecification | RasterArraySourceSpecification | GeoJSONSourceSpecification | VideoSourceSpecification | ImageSourceSpecification | ModelSourceSpecification; type IconsetSpecification = { "type": "sprite"; "url": string; } | { "type": "source"; "source": string; }; type ModelSpecification = string; type AmbientLightSpecification = { "id": string; "properties"?: { "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; }; "type": "ambient"; }; type DirectionalLightSpecification = { "id": string; "properties"?: { "direction"?: PropertyValueSpecification<[ number, number ]>; "direction-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; "cast-shadows"?: boolean; /** * @experimental This property is experimental and subject to change in future versions. */ "shadow-quality"?: PropertyValueSpecification<number>; "shadow-intensity"?: PropertyValueSpecification<number>; "shadow-intensity-transition"?: TransitionSpecification; }; "type": "directional"; }; type FlatLightSpecification = { "id": string; "properties"?: { "anchor"?: PropertyValueSpecification<"map" | "viewport">; "position"?: PropertyValueSpecification<[ number, number, number ]>; "position-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; }; "type": "flat"; }; type LightsSpecification = AmbientLightSpecification | DirectionalLightSpecification | FlatLightSpecification; type FillLayerSpecification = { "id": string; "type": "fill"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "fill-sort-key"?: DataDrivenPropertyValueSpecification<number>; "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-elevation-reference"?: "none" | "hd-road-base" | "hd-road-markup" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-construct-bridge-guard-rail"?: DataDrivenPropertyValueSpecification<boolean>; }; "paint"?: { "fill-antialias"?: PropertyValueSpecification<boolean>; "fill-opacity"?: DataDrivenPropertyValueSpecification<number>; "fill-opacity-transition"?: TransitionSpecification; "fill-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-color-transition"?: TransitionSpecification; "fill-color-use-theme"?: PropertyValueSpecification<string>; "fill-outline-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-outline-color-transition"?: TransitionSpecification; "fill-outline-color-use-theme"?: PropertyValueSpecification<string>; "fill-translate"?: PropertyValueSpecification<[ number, number ]>; "fill-translate-transition"?: TransitionSpecification; "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "fill-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "fill-pattern-cross-fade"?: PropertyValueSpecification<number>; "fill-emissive-strength"?: PropertyValueSpecification<number>; "fill-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-z-offset"?: DataDrivenPropertyValueSpecification<number>; "fill-z-offset-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-bridge-guard-rail-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-bridge-guard-rail-color-transition"?: TransitionSpecification; "fill-bridge-guard-rail-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-tunnel-structure-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-tunnel-structure-color-transition"?: TransitionSpecification; "fill-tunnel-structure-color-use-theme"?: PropertyValueSpecification<string>; }; }; type LineLayerSpecification = { "id": string; "type": "line"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "line-cap"?: DataDrivenPropertyValueSpecification<"butt" | "round" | "square">; "line-join"?: DataDrivenPropertyValueSpecification<"bevel" | "round" | "miter" | "none">; "line-miter-limit"?: PropertyValueSpecification<number>; "line-round-limit"?: PropertyValueSpecification<number>; "line-sort-key"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "line-z-offset"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "line-elevation-reference"?: "none" | "sea" | "ground" | "hd-road-markup" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "line-cross-slope"?: ExpressionSpecification; "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "line-width-unit"?: PropertyValueSpecification<"pixels" | "meters">; }; "paint"?: { "line-opacity"?: DataDrivenPropertyValueSpecification<number>; "line-opacity-transition"?: TransitionSpecification; "line-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "line-color-transition"?: TransitionSpecification; "line-color-use-theme"?: PropertyValueSpecification<string>; "line-translate"?: PropertyValueSpecification<[ number, number ]>; "line-translate-transition"?: TransitionSpecification; "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "line-width"?: DataDrivenPropertyValueSpecification<number>; "line-width-transition"?: TransitionSpecification; "line-gap-width"?: DataDrivenPropertyValueSpecification<number>; "line-gap-width-transition"?: TransitionSpecification; "line-offset"?: DataDrivenPropertyValueSpecification<number>; "line-offset-transition"?: TransitionSpecification; "line-blur"?: DataDrivenPropertyValueSpecification<number>; "line-blur-transition"?: TransitionSpecification; "line-dasharray"?: DataDrivenPropertyValueSpecification<Array<number>>; "line-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "line-pattern-cross-fade"?: PropertyValueSpecification<number>; "line-gradient"?: ExpressionSpecification; "line-gradient-use-theme"?: PropertyValueSpecification<string>; "line-trim-offset"?: [ number, number ]; /** * @experimental This property is experimental and subject to change in future versions. */ "line-trim-fade-range"?: PropertyValueSpecification<[ number, number ]>; /** * @experimental This property is experimental and subject to change in future versions. */ "line-trim-color"?: PropertyValueSpecification<ColorSpecification>; "line-trim-color-transition"?: TransitionSpecification; "line-trim-color-use-theme"?: PropertyValueSpecification<string>; "line-emissive-strength"?: PropertyValueSpecification<number>; "line-emissive-strength-transition"?: TransitionSpecification; "line-border-width"?: DataDrivenPropertyValueSpecification<number>; "line-border-width-transition"?: TransitionSpecification; "line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "line-border-color-transition"?: TransitionSpecification; "line-border-color-use-theme"?: PropertyValueSpecification<string>; "line-occlusion-opacity"?: PropertyValueSpecification<number>; "line-occlusion-opacity-transition"?: TransitionSpecification; }; }; type SymbolLayerSpecification = { "id": string; "type": "symbol"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "symbol-placement"?: PropertyValueSpecification<"point" | "line" | "line-center">; "symbol-spacing"?: PropertyValueSpecification<number>; "symbol-avoid-edges"?: PropertyValueSpecification<boolean>; "symbol-sort-key"?: DataDrivenPropertyValueSpecification<number>; "symbol-z-order"?: PropertyValueSpecification<"auto" | "viewport-y" | "source">; "symbol-z-elevate"?: PropertyValueSpecification<boolean>; /** * @experimental This property is experimental and subject to change in future versions. */ "symbol-elevation-reference"?: PropertyValueSpecification<"sea" | "ground" | "hd-road-markup">; "icon-allow-overlap"?: PropertyValueSpecification<boolean>; "icon-ignore-placement"?: PropertyValueSpecification<boolean>; "icon-optional"?: PropertyValueSpecification<boolean>; "icon-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "icon-size"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "icon-size-scale-range"?: ExpressionSpecification; "icon-text-fit"?: DataDrivenPropertyValueSpecification<"none" | "width" | "height" | "both">; "icon-text-fit-padding"?: DataDrivenPropertyValueSpecification<[ number, number, number, number ]>; "icon-image"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "icon-rotate"?: DataDrivenPropertyValueSpecification<number>; "icon-padding"?: PropertyValueSpecification<number>; "icon-keep-upright"?: PropertyValueSpecification<boolean>; "icon-offset"?: DataDrivenPropertyValueSpecification<[ number, number ]>; "icon-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "icon-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "text-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "text-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "text-field"?: DataDrivenPropertyValueSpecification<FormattedSpecification>; "text-font"?: DataDrivenPropertyValueSpecification<Array<string>>; "text-size"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "text-size-scale-range"?: ExpressionSpecification; "text-max-width"?: DataDrivenPropertyValueSpecification<number>; "text-line-height"?: DataDrivenPropertyValueSpecification<number>; "text-letter-spacing"?: DataDrivenPropertyValueSpecification<number>; "text-justify"?: DataDrivenPropertyValueSpecification<"auto" | "left" | "center" | "right">; "text-radial-offset"?: DataDrivenPropertyValueSpecification<number>; "text-variable-anchor"?: PropertyValueSpecification<Array<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">>; "text-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "text-max-angle"?: PropertyValueSpecification<number>; "text-writing-mode"?: PropertyValueSpecification<Array<"horizontal" | "vertical">>; "text-rotate"?: DataDrivenPropertyValueSpecification<number>; "text-padding"?: PropertyValueSpecification<number>; "text-keep-upright"?: PropertyValueSpecification<boolean>; "text-transform"?: DataDrivenPropertyValueSpecification<"none" | "uppercase" | "lowercase">; "text-offset"?: DataDrivenPropertyValueSpecification<[ number, number ]>; "text-allow-overlap"?: PropertyValueSpecification<boolean>; "text-ignore-placement"?: PropertyValueSpecification<boolean>; "text-optional"?: PropertyValueSpecification<boolean>; "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "icon-opacity"?: DataDrivenPropertyValueSpecification<number>; "icon-opacity-transition"?: TransitionSpecification; "icon-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>; "icon-occlusion-opacity-transition"?: TransitionSpecification; "icon-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "icon-emissive-strength-transition"?: TransitionSpecification; "text-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "text-emissive-strength-transition"?: TransitionSpecification; "icon-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "icon-color-transition"?: TransitionSpecification; "icon-color-use-theme"?: PropertyValueSpecification<string>; "icon-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "icon-halo-color-transition"?: TransitionSpecification; "icon-halo-color-use-theme"?: PropertyValueSpecification<string>; "icon-halo-width"?: DataDrivenPropertyValueSpecification<number>; "icon-halo-width-transition"?: TransitionSpecification; "icon-halo-blur"?: DataDrivenPropertyValueSpecification<number>; "icon-halo-blur-transition"?: TransitionSpecification; "icon-translate"?: PropertyValueSpecification<[ number, number ]>; "icon-translate-transition"?: TransitionSpecification; "icon-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "icon-image-cross-fade"?: PropertyValueSpecification<number>; "text-opacity"?: DataDrivenPropertyValueSpecification<number>; "text-opacity-transition"?: TransitionSpecification; "text-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>; "text-occlusion-opacity-transition"?: TransitionSpecification; "text-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "text-color-transition"?: TransitionSpecification; "text-color-use-theme"?: PropertyValueSpecification<string>; "text-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "text-halo-color-transition"?: TransitionSpecification; "text-halo-color-use-theme"?: PropertyValueSpecification<string>; "text-halo-width"?: DataDrivenPropertyValueSpecification<number>; "text-halo-width-transition"?: TransitionSpecification; "text-halo-blur"?: DataDrivenPropertyValueSpecification<number>; "text-halo-blur-transition"?: TransitionSpecification; "text-translate"?: PropertyValueSpecification<[ number, number ]>; "text-translate-transition"?: TransitionSpecification; "text-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "icon-color-saturation"?: ExpressionSpecification; "icon-color-contrast"?: ExpressionSpecification; "icon-color-brightness-min"?: ExpressionSpecification; "icon-color-brightness-max"?: ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "symbol-z-offset"?: DataDrivenPropertyValueSpecification<number>; "symbol-z-offset-transition"?: TransitionSpecification; }; }; type CircleLayerSpecification = { "id": string; "type": "circle"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "circle-sort-key"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "circle-elevation-reference"?: "none" | "hd-road-markup" | ExpressionSpecification; "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "circle-radius"?: DataDrivenPropertyValueSpecification<number>; "circle-radius-transition"?: TransitionSpecification; "circle-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "circle-color-transition"?: TransitionSpecification; "circle-color-use-theme"?: PropertyValueSpecification<string>; "circle-blur"?: DataDrivenPropertyValueSpecification<number>; "circle-blur-transition"?: TransitionSpecification; "circle-opacity"?: DataDrivenPropertyValueSpecification<number>; "circle-opacity-transition"?: TransitionSpecification; "circle-translate"?: PropertyValueSpecification<[ number, number ]>; "circle-translate-transition"?: TransitionSpecification; "circle-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "circle-pitch-scale"?: PropertyValueSpecification<"map" | "viewport">; "circle-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport">; "circle-stroke-width"?: DataDrivenPropertyValueSpecification<number>; "circle-stroke-width-transition"?: TransitionSpecification; "circle-stroke-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "circle-stroke-color-transition"?: TransitionSpecification; "circle-stroke-color-use-theme"?: PropertyValueSpecification<string>; "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification<number>; "circle-stroke-opacity-transition"?: TransitionSpecification; "circle-emissive-strength"?: PropertyValueSpecification<number>; "circle-emissive-strength-transition"?: TransitionSpecification; }; }; type HeatmapLayerSpecification = { "id": string; "type": "heatmap"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "heatmap-radius"?: DataDrivenPropertyValueSpecification<number>; "heatmap-radius-transition"?: TransitionSpecification; "heatmap-weight"?: DataDrivenPropertyValueSpecification<number>; "heatmap-intensity"?: PropertyValueSpecification<number>; "heatmap-intensity-transition"?: TransitionSpecification; "heatmap-color"?: ExpressionSpecification; "heatmap-color-use-theme"?: PropertyValueSpecification<string>; "heatmap-opacity"?: PropertyValueSpecification<number>; "heatmap-opacity-transition"?: TransitionSpecification; }; }; type FillExtrusionLayerSpecification = { "id": string; "type": "fill-extrusion"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-edge-radius"?: ExpressionSpecification; }; "paint"?: { "fill-extrusion-opacity"?: PropertyValueSpecification<number>; "fill-extrusion-opacity-transition"?: TransitionSpecification; "fill-extrusion-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-extrusion-color-transition"?: TransitionSpecification; "fill-extrusion-color-use-theme"?: PropertyValueSpecification<string>; "fill-extrusion-translate"?: PropertyValueSpecification<[ number, number ]>; "fill-extrusion-translate-transition"?: TransitionSpecification; "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "fill-extrusion-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "fill-extrusion-pattern-cross-fade"?: PropertyValueSpecification<number>; "fill-extrusion-height"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-height-transition"?: TransitionSpecification; "fill-extrusion-base"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-base-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-height-alignment"?: "terrain" | "flat"; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-base-alignment"?: "terrain" | "flat"; "fill-extrusion-vertical-gradient"?: PropertyValueSpecification<boolean>; "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification; "fill-extrusion-ambient-occlusion-radius"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-wall-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-ground-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-color"?: PropertyValueSpecification<ColorSpecification>; "fill-extrusion-flood-light-color-transition"?: TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification<number>; "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-flood-light-wall-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-flood-light-ground-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-ground-attenuation"?: PropertyValueSpecification<number>; "fill-extrusion-flood-light-ground-attenuation-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-vertical-scale"?: PropertyValueSpecification<number>; "fill-extrusion-vertical-scale-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-rounded-roof"?: PropertyValueSpecification<boolean>; "fill-extrusion-cutoff-fade-range"?: ExpressionSpecification; "fill-extrusion-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-line-width"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-line-width-transition"?: TransitionSpecification; "fill-extrusion-cast-shadows"?: boolean; }; }; type BuildingLayerSpecification = { "id": string; "type": "building"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-roof-shape"?: DataDrivenPropertyValueSpecification<"flat" | "hipped" | "gabled" | "parapet" | "mansard" | "skillion" | "pyramidal">; /** * @experimental This property is experimental and subject to change in future versions. */ "building-height"?: DataDrivenPropertyValueSpecification<number>; "building-height-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-base"?: DataDrivenPropertyValueSpecification<number>; "building-base-transition"?: TransitionSpecification; }; "paint"?: { /** * @experimental This property is experimental and subject to change in future versions. */ "building-opacity"?: PropertyValueSpecification<number>; "building-opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-wall-intensity"?: PropertyValueSpecification<number>; "building-ambient-occlusion-wall-intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-ground-intensity"?: PropertyValueSpecification<number>; "building-ambient-occlusion-ground-intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>; "building-ambient-occlusion-ground-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>; "building-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-vertical-scale"?: PropertyValueSpecification<number>; "building-vertical-scale-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "building-cast-shadows"?: boolean; /** * @experimental This property is experimental and subject to change in future versions. */ "building-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "building-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "building-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; }; }; type RasterLayerSpecification = { "id": string; "type": "raster"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "raster-opacity"?: PropertyValueSpecification<number>; "raster-opacity-transition"?: TransitionSpecification; "raster-color"?: ExpressionSpecification; "raster-color-use-theme"?: PropertyValueSpecification<string>; "raster-color-mix"?: PropertyValueSpecification<[ number, number, number, number ]>; "raster-color-mix-transition"?: TransitionSpecification; "raster-color-range"?: PropertyValueSpecification<[ number, number ]>; "raster-color-range-transition"?: TransitionSpecification; "raster-hue-rotate"?: PropertyValueSpecification<number>; "raster-hue-rotate-transition"?: TransitionSpecification; "raster-brightness-min"?: PropertyValueSpecification<number>; "raster-brightness-min-transition"?: TransitionSpecification; "raster-brightness-max"?: PropertyValueSpecification<number>; "raster-brightness-max-transition"?: TransitionSpecification; "raster-saturation"?: PropertyValueSpecification<number>; "raster-saturation-transition"?: TransitionSpecification; "raster-contrast"?: PropertyValueSpecification<number>; "raster-contrast-transition"?: TransitionSpecification; "raster-resampling"?: PropertyValueSpecification<"linear" | "nearest">; "raster-fade-duration"?: PropertyValueSpecification<number>; "raster-emissive-strength"?: PropertyValueSpecification<number>; "raster-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "raster-array-band"?: string; /** * @experimental This property is experimental and subject to change in future versions. */ "raster-elevation"?: PropertyValueSpecification<number>; "raster-elevation-transition"?: TransitionSpecification; }; }; type RasterParticleLayerSpecification = { "id": string; "type": "raster-particle"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "raster-particle-array-band"?: string; "raster-particle-count"?: number; "raster-particle-color"?: ExpressionSpecification; "raster-particle-color-use-theme"?: PropertyValueSpecification<string>; "raster-particle-max-speed"?: number; "raster-particle-speed-factor"?: PropertyValueSpecification<number>; "raster-particle-speed-factor-transition"?: TransitionSpecification; "raster-particle-fade-opacity-factor"?: PropertyValueSpecification<number>; "raster-particle-fade-opacity-factor-transition"?: TransitionSpecification; "raster-particle-reset-rate-factor"?: number; "raster-particle-elevation"?: PropertyValueSpecification<number>; "raster-particle-elevation-transition"?: TransitionSpecification; }; }; type HillshadeLayerSpecification = { "id": string; "type": "hillshade"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "hillshade-illumination-direction"?: PropertyValueSpecification<number>; "hillshade-illumination-anchor"?: PropertyValueSpecification<"map" | "viewport">; "hillshade-exaggeration"?: PropertyValueSpecification<number>; "hillshade-exaggeration-transition"?: TransitionSpecification; "hillshade-shadow-color"?: PropertyValueSpecification<ColorSpecification>; "hillshade-shadow-color-transition"?: TransitionSpecification; "hillshade-shadow-color-use-theme"?: PropertyValueSpecification<string>; "hillshade-highlight-color"?: PropertyValueSpecification<ColorSpecification>; "hillshade-highlight-color-transition"?: TransitionSpecification; "hillshade-highlight-color-use-theme"?: PropertyValueSpecification<string>; "hillshade-accent-color"?: PropertyValueSpecification<ColorSpecification>; "hillshade-accent-color-transition"?: TransitionSpecification; "hillshade-accent-color-use-theme"?: PropertyValueSpecification<string>; "hillshade-emissive-strength"?: PropertyValueSpecification<number>; "hillshade-emissive-strength-transition"?: TransitionSpecification; }; }; type ModelLayerSpecification = { "id": string; "type": "model"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; "model-id"?: DataDrivenPropertyValueSpecification<string>; }; "paint"?: { "model-opacity"?: DataDrivenPropertyValueSpecification<number>; "model-opacity-transition"?: Transi