@mapbox/mapbox-gl-style-spec 14.7.1 → 14.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -218,7 +218,7 @@
218
218
  featuresets: {
219
219
  experimental: true,
220
220
  type: "featuresets",
221
- doc: "Defines sets of features for querying, interaction, and feature state manipulation.",
221
+ doc: "Defines sets of features for querying, interaction, and state management on the map, referencing individual layers or subsets of layers within the map's style.",
222
222
  example: {
223
223
  poi: {
224
224
  selectors: [
@@ -1287,7 +1287,6 @@
1287
1287
  },
1288
1288
  clip: {
1289
1289
  doc: "Layer that removes 3D content from map.",
1290
- experimental: true,
1291
1290
  "sdk-support": {
1292
1291
  "basic functionality": {
1293
1292
  js: "3.5.0",
@@ -1586,6 +1585,35 @@
1586
1585
  interpolated: false
1587
1586
  },
1588
1587
  "property-type": "constant"
1588
+ },
1589
+ "fill-elevation-reference": {
1590
+ type: "enum",
1591
+ doc: "Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.",
1592
+ values: {
1593
+ none: {
1594
+ doc: "Elevated rendering is disabled."
1595
+ },
1596
+ "hd-road-base": {
1597
+ doc: "Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."
1598
+ },
1599
+ "hd-road-markup": {
1600
+ doc: "Elevated rendering is enabled. Use this mode to describe additive and stackable features such as 'hatched areas' that should exist only on top of road polygons."
1601
+ }
1602
+ },
1603
+ "default": "none",
1604
+ experimental: true,
1605
+ "private": true,
1606
+ transition: false,
1607
+ "sdk-support": {
1608
+ "basic functionality": {
1609
+ android: "11.9.0",
1610
+ ios: "11.9.0"
1611
+ }
1612
+ },
1613
+ expression: {
1614
+ interpolated: false
1615
+ },
1616
+ "property-type": "data-constant"
1589
1617
  }
1590
1618
  };
1591
1619
  var layout_circle = {
@@ -1828,7 +1856,11 @@
1828
1856
  "line-z-offset": {
1829
1857
  type: "number",
1830
1858
  experimental: true,
1831
- doc: "Vertical offset from ground, in meters. Defaults to 0. Not supported for globe projection at the moment.",
1859
+ doc: "Vertical offset from ground, in meters. Defaults to 0. This is an experimental property with some known issues:\n * Not supported for globe projection at the moment \n * Elevated line discontinuity is possible on tile borders with terrain enabled \n * Rendering artifacts can happen near line joins and line caps depending on the line styling \n * Rendering artifacts relating to `line-opacity` and `line-blur` \n * Elevated line visibility is determined by layer order \n * Z-fighting issues can happen with intersecting elevated lines \n * Elevated lines don't cast shadows",
1860
+ "default": 0,
1861
+ requires: [
1862
+ "line-elevation-reference"
1863
+ ],
1832
1864
  "sdk-support": {
1833
1865
  "basic functionality": {
1834
1866
  js: "3.5.0",
@@ -1851,6 +1883,57 @@
1851
1883
  },
1852
1884
  "property-type": "data-driven"
1853
1885
  },
1886
+ "line-elevation-reference": {
1887
+ type: "enum",
1888
+ doc: "Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",
1889
+ values: {
1890
+ none: {
1891
+ doc: "Elevated rendering is disabled."
1892
+ },
1893
+ sea: {
1894
+ doc: "Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."
1895
+ },
1896
+ ground: {
1897
+ doc: "Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."
1898
+ },
1899
+ "hd-road-markup": {
1900
+ doc: "Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."
1901
+ }
1902
+ },
1903
+ "default": "none",
1904
+ experimental: true,
1905
+ transition: false,
1906
+ "sdk-support": {
1907
+ "basic functionality": {
1908
+ js: "3.8.0",
1909
+ android: "11.9.0",
1910
+ ios: "11.9.0"
1911
+ }
1912
+ },
1913
+ expression: {
1914
+ interpolated: false
1915
+ },
1916
+ "property-type": "data-constant"
1917
+ },
1918
+ "line-cross-slope": {
1919
+ type: "number",
1920
+ experimental: true,
1921
+ doc: "Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\n * Vertical lines don't support line caps \n * `line-join: round` is not supported with this property",
1922
+ requires: [
1923
+ "line-z-offset"
1924
+ ],
1925
+ "sdk-support": {
1926
+ "basic functionality": {
1927
+ js: "3.8.0",
1928
+ android: "11.9.0",
1929
+ ios: "11.9.0"
1930
+ }
1931
+ },
1932
+ expression: {
1933
+ interpolated: false
1934
+ },
1935
+ "property-type": "constant"
1936
+ },
1854
1937
  visibility: {
1855
1938
  type: "enum",
1856
1939
  values: {
@@ -2047,6 +2130,36 @@
2047
2130
  },
2048
2131
  "property-type": "data-constant"
2049
2132
  },
2133
+ "symbol-elevation-reference": {
2134
+ type: "enum",
2135
+ doc: "Selects the base of symbol-elevation.",
2136
+ values: {
2137
+ sea: {
2138
+ doc: "Elevate symbols relative to the sea level."
2139
+ },
2140
+ ground: {
2141
+ doc: "Elevate symbols relative to the ground's height below them."
2142
+ },
2143
+ "hd-road-markup": {
2144
+ doc: "Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."
2145
+ }
2146
+ },
2147
+ "default": "ground",
2148
+ experimental: true,
2149
+ "sdk-support": {
2150
+ "basic functionality": {
2151
+ android: "11.9.0",
2152
+ ios: "11.9.0"
2153
+ }
2154
+ },
2155
+ expression: {
2156
+ interpolated: false,
2157
+ parameters: [
2158
+ "zoom"
2159
+ ]
2160
+ },
2161
+ "property-type": "data-constant"
2162
+ },
2050
2163
  "icon-allow-overlap": {
2051
2164
  type: "boolean",
2052
2165
  "default": false,
@@ -2182,6 +2295,31 @@
2182
2295
  },
2183
2296
  "property-type": "data-driven"
2184
2297
  },
2298
+ "icon-size-scale-range": {
2299
+ type: "array",
2300
+ value: "number",
2301
+ length: 2,
2302
+ "default": [
2303
+ 0.8,
2304
+ 2
2305
+ ],
2306
+ doc: "Defines the minimum and maximum scaling factors for icon related properties like `icon-size`, `icon-halo-width`, `icon-halo-blur`",
2307
+ minimum: 0.1,
2308
+ maximum: 10,
2309
+ experimental: true,
2310
+ "private": true,
2311
+ expression: {
2312
+ interpolated: false
2313
+ },
2314
+ "sdk-support": {
2315
+ "basic functionality": {
2316
+ js: "3.8.0",
2317
+ android: "11.8.0",
2318
+ ios: "11.8.0"
2319
+ }
2320
+ },
2321
+ "property-type": "data-constant"
2322
+ },
2185
2323
  "icon-text-fit": {
2186
2324
  type: "enum",
2187
2325
  values: {
@@ -2671,6 +2809,31 @@
2671
2809
  },
2672
2810
  "property-type": "data-driven"
2673
2811
  },
2812
+ "text-size-scale-range": {
2813
+ type: "array",
2814
+ value: "number",
2815
+ length: 2,
2816
+ "default": [
2817
+ 0.8,
2818
+ 2
2819
+ ],
2820
+ doc: "Defines the minimum and maximum scaling factors for text related properties like `text-size`, `text-max-width`, `text-halo-width`, `font-size`",
2821
+ minimum: 0.1,
2822
+ maximum: 10,
2823
+ experimental: true,
2824
+ "private": true,
2825
+ expression: {
2826
+ interpolated: false
2827
+ },
2828
+ "sdk-support": {
2829
+ "basic functionality": {
2830
+ js: "3.8.0",
2831
+ android: "11.8.0",
2832
+ ios: "11.8.0"
2833
+ }
2834
+ },
2835
+ "property-type": "data-constant"
2836
+ },
2674
2837
  "text-max-width": {
2675
2838
  type: "number",
2676
2839
  "default": 10,
@@ -3370,6 +3533,62 @@
3370
3533
  ]
3371
3534
  }
3372
3535
  };
3536
+ var filter_hillshade = {
3537
+ type: "boolean",
3538
+ doc: "Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3539
+ "default": false,
3540
+ transition: false,
3541
+ "property-type": "data-driven",
3542
+ expression: {
3543
+ interpolated: false,
3544
+ parameters: [
3545
+ "zoom",
3546
+ "feature"
3547
+ ]
3548
+ }
3549
+ };
3550
+ var filter_raster = {
3551
+ type: "boolean",
3552
+ doc: "Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3553
+ "default": false,
3554
+ transition: false,
3555
+ "property-type": "data-driven",
3556
+ expression: {
3557
+ interpolated: false,
3558
+ parameters: [
3559
+ "zoom",
3560
+ "feature"
3561
+ ]
3562
+ }
3563
+ };
3564
+ var filter_clip = {
3565
+ type: "boolean",
3566
+ doc: "Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3567
+ "default": false,
3568
+ transition: false,
3569
+ "property-type": "data-driven",
3570
+ expression: {
3571
+ interpolated: false,
3572
+ parameters: [
3573
+ "zoom",
3574
+ "feature"
3575
+ ]
3576
+ }
3577
+ };
3578
+ var filter_model = {
3579
+ type: "boolean",
3580
+ doc: "Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3581
+ "default": false,
3582
+ transition: false,
3583
+ "property-type": "data-driven",
3584
+ expression: {
3585
+ interpolated: false,
3586
+ parameters: [
3587
+ "zoom",
3588
+ "feature"
3589
+ ]
3590
+ }
3591
+ };
3373
3592
  var filter_line = {
3374
3593
  type: "boolean",
3375
3594
  doc: "Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
@@ -4049,7 +4268,7 @@
4049
4268
  }
4050
4269
  },
4051
4270
  "line-progress": {
4052
- doc: "Returns the progress along a gradient line. Can only be used in the `line-gradient` property.",
4271
+ doc: "Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.",
4053
4272
  group: "Feature data",
4054
4273
  "sdk-support": {
4055
4274
  "basic functionality": {
@@ -4551,32 +4770,388 @@
4551
4770
  }
4552
4771
  }
4553
4772
  },
4554
- random: {
4555
- doc: "Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",
4556
- group: "Math",
4557
- "sdk-support": {
4558
- "basic functionality": {
4559
- js: "3.0.0",
4560
- android: "11.0.0",
4561
- ios: "11.0.0"
4562
- }
4773
+ random: {
4774
+ doc: "Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",
4775
+ group: "Math",
4776
+ "sdk-support": {
4777
+ "basic functionality": {
4778
+ js: "3.0.0",
4779
+ android: "11.0.0",
4780
+ ios: "11.0.0"
4781
+ }
4782
+ }
4783
+ }
4784
+ }
4785
+ };
4786
+ var fog = {
4787
+ range: {
4788
+ type: "array",
4789
+ "default": [
4790
+ 0.5,
4791
+ 10
4792
+ ],
4793
+ minimum: -20,
4794
+ maximum: 20,
4795
+ length: 2,
4796
+ value: "number",
4797
+ "property-type": "data-constant",
4798
+ transition: true,
4799
+ expression: {
4800
+ interpolated: true,
4801
+ parameters: [
4802
+ "zoom",
4803
+ "measure-light"
4804
+ ],
4805
+ relaxZoomRestriction: true
4806
+ },
4807
+ doc: "The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",
4808
+ example: [
4809
+ 0.5,
4810
+ 10
4811
+ ],
4812
+ "sdk-support": {
4813
+ "basic functionality": {
4814
+ js: "2.3.0",
4815
+ android: "10.6.0",
4816
+ ios: "10.6.0"
4817
+ }
4818
+ }
4819
+ },
4820
+ color: {
4821
+ type: "color",
4822
+ "property-type": "data-constant",
4823
+ "default": "#ffffff",
4824
+ expression: {
4825
+ interpolated: true,
4826
+ parameters: [
4827
+ "zoom",
4828
+ "measure-light"
4829
+ ],
4830
+ relaxZoomRestriction: true
4831
+ },
4832
+ transition: true,
4833
+ doc: "The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.",
4834
+ "sdk-support": {
4835
+ "basic functionality": {
4836
+ js: "2.3.0",
4837
+ android: "10.6.0",
4838
+ ios: "10.6.0"
4839
+ }
4840
+ }
4841
+ },
4842
+ "high-color": {
4843
+ type: "color",
4844
+ "property-type": "data-constant",
4845
+ "default": "#245cdf",
4846
+ expression: {
4847
+ interpolated: true,
4848
+ parameters: [
4849
+ "zoom",
4850
+ "measure-light"
4851
+ ],
4852
+ relaxZoomRestriction: true
4853
+ },
4854
+ transition: true,
4855
+ doc: "The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.",
4856
+ "sdk-support": {
4857
+ "basic functionality": {
4858
+ js: "2.9.0",
4859
+ android: "10.6.0",
4860
+ ios: "10.6.0"
4861
+ }
4862
+ }
4863
+ },
4864
+ "space-color": {
4865
+ type: "color",
4866
+ "property-type": "data-constant",
4867
+ "default": [
4868
+ "interpolate",
4869
+ [
4870
+ "linear"
4871
+ ],
4872
+ [
4873
+ "zoom"
4874
+ ],
4875
+ 4,
4876
+ "#010b19",
4877
+ 7,
4878
+ "#367ab9"
4879
+ ],
4880
+ expression: {
4881
+ interpolated: true,
4882
+ parameters: [
4883
+ "zoom",
4884
+ "measure-light"
4885
+ ],
4886
+ relaxZoomRestriction: true
4887
+ },
4888
+ transition: true,
4889
+ doc: "The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.",
4890
+ "sdk-support": {
4891
+ "basic functionality": {
4892
+ js: "2.9.0",
4893
+ android: "10.6.0",
4894
+ ios: "10.6.0"
4895
+ }
4896
+ }
4897
+ },
4898
+ "horizon-blend": {
4899
+ type: "number",
4900
+ "property-type": "data-constant",
4901
+ "default": [
4902
+ "interpolate",
4903
+ [
4904
+ "linear"
4905
+ ],
4906
+ [
4907
+ "zoom"
4908
+ ],
4909
+ 4,
4910
+ 0.2,
4911
+ 7,
4912
+ 0.1
4913
+ ],
4914
+ minimum: 0,
4915
+ maximum: 1,
4916
+ expression: {
4917
+ interpolated: true,
4918
+ parameters: [
4919
+ "zoom",
4920
+ "measure-light"
4921
+ ],
4922
+ relaxZoomRestriction: true
4923
+ },
4924
+ transition: true,
4925
+ doc: "Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.",
4926
+ "sdk-support": {
4927
+ "basic functionality": {
4928
+ js: "2.3.0",
4929
+ android: "10.6.0",
4930
+ ios: "10.6.0"
4931
+ }
4932
+ }
4933
+ },
4934
+ "star-intensity": {
4935
+ type: "number",
4936
+ "property-type": "data-constant",
4937
+ "default": [
4938
+ "interpolate",
4939
+ [
4940
+ "linear"
4941
+ ],
4942
+ [
4943
+ "zoom"
4944
+ ],
4945
+ 5,
4946
+ 0.35,
4947
+ 6,
4948
+ 0
4949
+ ],
4950
+ minimum: 0,
4951
+ maximum: 1,
4952
+ expression: {
4953
+ interpolated: true,
4954
+ parameters: [
4955
+ "zoom",
4956
+ "measure-light"
4957
+ ],
4958
+ relaxZoomRestriction: true
4959
+ },
4960
+ transition: true,
4961
+ doc: "A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.",
4962
+ "sdk-support": {
4963
+ "basic functionality": {
4964
+ js: "2.9.0",
4965
+ android: "10.6.0",
4966
+ ios: "10.6.0"
4967
+ }
4968
+ }
4969
+ },
4970
+ "vertical-range": {
4971
+ type: "array",
4972
+ "default": [
4973
+ 0,
4974
+ 0
4975
+ ],
4976
+ minimum: 0,
4977
+ length: 2,
4978
+ value: "number",
4979
+ "property-type": "data-constant",
4980
+ transition: true,
4981
+ expression: {
4982
+ interpolated: true,
4983
+ parameters: [
4984
+ "zoom",
4985
+ "measure-light"
4986
+ ],
4987
+ relaxZoomRestriction: true
4988
+ },
4989
+ doc: "An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.",
4990
+ "sdk-support": {
4991
+ "basic functionality": {
4992
+ js: "3.0.0",
4993
+ android: "11.0.0",
4994
+ ios: "11.0.0"
4995
+ }
4996
+ }
4997
+ }
4998
+ };
4999
+ var snow = {
5000
+ density: {
5001
+ type: "number",
5002
+ "property-type": "data-constant",
5003
+ "default": 1,
5004
+ minimum: 0,
5005
+ maximum: 1,
5006
+ experimental: true,
5007
+ expression: {
5008
+ interpolated: true,
5009
+ parameters: [
5010
+ "zoom",
5011
+ "measure-light"
5012
+ ],
5013
+ relaxZoomRestriction: true
5014
+ },
5015
+ transition: true,
5016
+ doc: "Snow particles density.",
5017
+ "sdk-support": {
5018
+ "basic functionality": {
5019
+ android: "11.8.0",
5020
+ ios: "11.8.0"
5021
+ }
5022
+ }
5023
+ },
5024
+ intensity: {
5025
+ type: "number",
5026
+ "property-type": "data-constant",
5027
+ "default": 1,
5028
+ minimum: 0,
5029
+ maximum: 1,
5030
+ experimental: true,
5031
+ expression: {
5032
+ interpolated: true,
5033
+ parameters: [
5034
+ "zoom",
5035
+ "measure-light"
5036
+ ],
5037
+ relaxZoomRestriction: true
5038
+ },
5039
+ transition: true,
5040
+ doc: "Snow particles movement factor.",
5041
+ "sdk-support": {
5042
+ "basic functionality": {
5043
+ android: "11.8.0",
5044
+ ios: "11.8.0"
5045
+ }
5046
+ }
5047
+ },
5048
+ color: {
5049
+ type: "color",
5050
+ "property-type": "data-constant",
5051
+ "default": "#ffffff",
5052
+ experimental: true,
5053
+ expression: {
5054
+ interpolated: true,
5055
+ parameters: [
5056
+ "zoom",
5057
+ "measure-light"
5058
+ ],
5059
+ relaxZoomRestriction: true
5060
+ },
5061
+ transition: true,
5062
+ doc: "Snow particles color.",
5063
+ "sdk-support": {
5064
+ "basic functionality": {
5065
+ android: "11.8.0",
5066
+ ios: "11.8.0"
5067
+ }
5068
+ }
5069
+ },
5070
+ opacity: {
5071
+ type: "number",
5072
+ "property-type": "data-constant",
5073
+ "default": 1,
5074
+ minimum: 0,
5075
+ maximum: 1,
5076
+ experimental: true,
5077
+ expression: {
5078
+ interpolated: true,
5079
+ parameters: [
5080
+ "zoom",
5081
+ "measure-light"
5082
+ ],
5083
+ relaxZoomRestriction: true
5084
+ },
5085
+ transition: true,
5086
+ doc: "Snow particles opacity.",
5087
+ "sdk-support": {
5088
+ "basic functionality": {
5089
+ android: "11.8.0",
5090
+ ios: "11.8.0"
5091
+ }
5092
+ }
5093
+ },
5094
+ vignette: {
5095
+ type: "number",
5096
+ "property-type": "data-constant",
5097
+ "default": 0,
5098
+ minimum: 0,
5099
+ maximum: 1,
5100
+ experimental: true,
5101
+ expression: {
5102
+ interpolated: true,
5103
+ parameters: [
5104
+ "zoom",
5105
+ "measure-light"
5106
+ ],
5107
+ relaxZoomRestriction: true
5108
+ },
5109
+ transition: true,
5110
+ doc: "Snow vignette screen-space effect.",
5111
+ "sdk-support": {
5112
+ "basic functionality": {
5113
+ android: "11.8.0",
5114
+ ios: "11.8.0"
5115
+ }
5116
+ }
5117
+ },
5118
+ centerThinning: {
5119
+ type: "number",
5120
+ "property-type": "data-constant",
5121
+ "default": 1,
5122
+ minimum: 0,
5123
+ maximum: 1,
5124
+ experimental: true,
5125
+ expression: {
5126
+ interpolated: true,
5127
+ parameters: [
5128
+ "zoom",
5129
+ "measure-light"
5130
+ ],
5131
+ relaxZoomRestriction: true
5132
+ },
5133
+ transition: true,
5134
+ doc: "Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.",
5135
+ "sdk-support": {
5136
+ "basic functionality": {
5137
+ android: "11.8.0",
5138
+ ios: "11.8.0"
4563
5139
  }
4564
5140
  }
4565
- }
4566
- };
4567
- var fog = {
4568
- range: {
5141
+ },
5142
+ direction: {
4569
5143
  type: "array",
4570
5144
  "default": [
4571
- 0.5,
4572
- 10
5145
+ 0,
5146
+ 90
4573
5147
  ],
4574
- minimum: -20,
4575
- maximum: 20,
5148
+ minimum: 0,
5149
+ maximum: 360,
4576
5150
  length: 2,
4577
5151
  value: "number",
4578
5152
  "property-type": "data-constant",
4579
5153
  transition: true,
5154
+ experimental: true,
4580
5155
  expression: {
4581
5156
  interpolated: true,
4582
5157
  parameters: [
@@ -4585,23 +5160,27 @@
4585
5160
  ],
4586
5161
  relaxZoomRestriction: true
4587
5162
  },
4588
- doc: "The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",
5163
+ doc: "Main snow particles direction. Heading & pitch",
4589
5164
  example: [
4590
- 0.5,
4591
- 10
5165
+ 0,
5166
+ 45
4592
5167
  ],
4593
5168
  "sdk-support": {
4594
5169
  "basic functionality": {
4595
- js: "2.3.0",
4596
- android: "10.6.0",
4597
- ios: "10.6.0"
5170
+ android: "11.8.0",
5171
+ ios: "11.8.0"
4598
5172
  }
4599
5173
  }
4600
- },
4601
- color: {
4602
- type: "color",
5174
+ }
5175
+ };
5176
+ var rain = {
5177
+ density: {
5178
+ type: "number",
4603
5179
  "property-type": "data-constant",
4604
- "default": "#ffffff",
5180
+ "default": 1,
5181
+ minimum: 0,
5182
+ maximum: 1,
5183
+ experimental: true,
4605
5184
  expression: {
4606
5185
  interpolated: true,
4607
5186
  parameters: [
@@ -4611,19 +5190,21 @@
4611
5190
  relaxZoomRestriction: true
4612
5191
  },
4613
5192
  transition: true,
4614
- doc: "The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.",
5193
+ doc: "Rain particles density.",
4615
5194
  "sdk-support": {
4616
5195
  "basic functionality": {
4617
- js: "2.3.0",
4618
- android: "10.6.0",
4619
- ios: "10.6.0"
5196
+ android: "11.8.0",
5197
+ ios: "11.8.0"
4620
5198
  }
4621
5199
  }
4622
5200
  },
4623
- "high-color": {
4624
- type: "color",
5201
+ intensity: {
5202
+ type: "number",
4625
5203
  "property-type": "data-constant",
4626
- "default": "#245cdf",
5204
+ "default": 1,
5205
+ minimum: 0,
5206
+ maximum: 1,
5207
+ experimental: true,
4627
5208
  expression: {
4628
5209
  interpolated: true,
4629
5210
  parameters: [
@@ -4633,31 +5214,19 @@
4633
5214
  relaxZoomRestriction: true
4634
5215
  },
4635
5216
  transition: true,
4636
- doc: "The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.",
5217
+ doc: "Rain particles movement factor.",
4637
5218
  "sdk-support": {
4638
5219
  "basic functionality": {
4639
- js: "2.9.0",
4640
- android: "10.6.0",
4641
- ios: "10.6.0"
5220
+ android: "11.8.0",
5221
+ ios: "11.8.0"
4642
5222
  }
4643
5223
  }
4644
5224
  },
4645
- "space-color": {
5225
+ color: {
4646
5226
  type: "color",
4647
5227
  "property-type": "data-constant",
4648
- "default": [
4649
- "interpolate",
4650
- [
4651
- "linear"
4652
- ],
4653
- [
4654
- "zoom"
4655
- ],
4656
- 4,
4657
- "#010b19",
4658
- 7,
4659
- "#367ab9"
4660
- ],
5228
+ "default": "#ffffff",
5229
+ experimental: true,
4661
5230
  expression: {
4662
5231
  interpolated: true,
4663
5232
  parameters: [
@@ -4667,33 +5236,21 @@
4667
5236
  relaxZoomRestriction: true
4668
5237
  },
4669
5238
  transition: true,
4670
- doc: "The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.",
5239
+ doc: "",
4671
5240
  "sdk-support": {
4672
5241
  "basic functionality": {
4673
- js: "2.9.0",
4674
- android: "10.6.0",
4675
- ios: "10.6.0"
5242
+ android: "11.8.0",
5243
+ ios: "11.8.0"
4676
5244
  }
4677
5245
  }
4678
5246
  },
4679
- "horizon-blend": {
5247
+ opacity: {
4680
5248
  type: "number",
4681
5249
  "property-type": "data-constant",
4682
- "default": [
4683
- "interpolate",
4684
- [
4685
- "linear"
4686
- ],
4687
- [
4688
- "zoom"
4689
- ],
4690
- 4,
4691
- 0.2,
4692
- 7,
4693
- 0.1
4694
- ],
5250
+ "default": 1,
4695
5251
  minimum: 0,
4696
5252
  maximum: 1,
5253
+ experimental: true,
4697
5254
  expression: {
4698
5255
  interpolated: true,
4699
5256
  parameters: [
@@ -4703,33 +5260,45 @@
4703
5260
  relaxZoomRestriction: true
4704
5261
  },
4705
5262
  transition: true,
4706
- doc: "Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.",
5263
+ doc: "Rain particles opacity.",
4707
5264
  "sdk-support": {
4708
5265
  "basic functionality": {
4709
- js: "2.3.0",
4710
- android: "10.6.0",
4711
- ios: "10.6.0"
5266
+ android: "11.8.0",
5267
+ ios: "11.8.0"
4712
5268
  }
4713
5269
  }
4714
5270
  },
4715
- "star-intensity": {
5271
+ vignette: {
4716
5272
  type: "number",
4717
5273
  "property-type": "data-constant",
4718
- "default": [
4719
- "interpolate",
4720
- [
4721
- "linear"
4722
- ],
4723
- [
4724
- "zoom"
5274
+ "default": 0,
5275
+ minimum: 0,
5276
+ maximum: 1,
5277
+ experimental: true,
5278
+ expression: {
5279
+ interpolated: true,
5280
+ parameters: [
5281
+ "zoom",
5282
+ "measure-light"
4725
5283
  ],
4726
- 5,
4727
- 0.35,
4728
- 6,
4729
- 0
4730
- ],
5284
+ relaxZoomRestriction: true
5285
+ },
5286
+ transition: true,
5287
+ doc: "Rain vignette screen-space effect.",
5288
+ "sdk-support": {
5289
+ "basic functionality": {
5290
+ android: "11.8.0",
5291
+ ios: "11.8.0"
5292
+ }
5293
+ }
5294
+ },
5295
+ centerThinning: {
5296
+ type: "number",
5297
+ "property-type": "data-constant",
5298
+ "default": 1,
4731
5299
  minimum: 0,
4732
5300
  maximum: 1,
5301
+ experimental: true,
4733
5302
  expression: {
4734
5303
  interpolated: true,
4735
5304
  parameters: [
@@ -4739,26 +5308,27 @@
4739
5308
  relaxZoomRestriction: true
4740
5309
  },
4741
5310
  transition: true,
4742
- doc: "A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.",
5311
+ doc: "Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.",
4743
5312
  "sdk-support": {
4744
5313
  "basic functionality": {
4745
- js: "2.9.0",
4746
- android: "10.6.0",
4747
- ios: "10.6.0"
5314
+ android: "11.8.0",
5315
+ ios: "11.8.0"
4748
5316
  }
4749
5317
  }
4750
5318
  },
4751
- "vertical-range": {
5319
+ direction: {
4752
5320
  type: "array",
4753
5321
  "default": [
4754
5322
  0,
4755
- 0
5323
+ 80
4756
5324
  ],
4757
5325
  minimum: 0,
5326
+ maximum: 360,
4758
5327
  length: 2,
4759
5328
  value: "number",
4760
5329
  "property-type": "data-constant",
4761
5330
  transition: true,
5331
+ experimental: true,
4762
5332
  expression: {
4763
5333
  interpolated: true,
4764
5334
  parameters: [
@@ -4767,12 +5337,15 @@
4767
5337
  ],
4768
5338
  relaxZoomRestriction: true
4769
5339
  },
4770
- doc: "An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.",
5340
+ doc: "Main rain particles direction. Heading & pitch",
5341
+ example: [
5342
+ 0,
5343
+ 45
5344
+ ],
4771
5345
  "sdk-support": {
4772
5346
  "basic functionality": {
4773
- js: "3.0.0",
4774
- android: "11.0.0",
4775
- ios: "11.0.0"
5347
+ android: "11.8.0",
5348
+ ios: "11.8.0"
4776
5349
  }
4777
5350
  }
4778
5351
  }
@@ -7094,34 +7667,6 @@
7094
7667
  ]
7095
7668
  },
7096
7669
  "property-type": "data-driven"
7097
- },
7098
- "symbol-elevation-reference": {
7099
- type: "enum",
7100
- doc: "Selects the base of symbol-elevation.",
7101
- values: {
7102
- sea: {
7103
- doc: "Elevate symbols relative to the sea level."
7104
- },
7105
- ground: {
7106
- doc: "Elevate symbols relative to the ground's height below them."
7107
- }
7108
- },
7109
- "default": "ground",
7110
- experimental: true,
7111
- "sdk-support": {
7112
- "basic functionality": {
7113
- js: "3.7.0",
7114
- android: "11.7.0",
7115
- ios: "11.7.0"
7116
- }
7117
- },
7118
- expression: {
7119
- interpolated: false,
7120
- parameters: [
7121
- "zoom"
7122
- ]
7123
- },
7124
- "property-type": "data-constant"
7125
7670
  }
7126
7671
  };
7127
7672
  var paint_raster = {
@@ -8610,6 +9155,24 @@
8610
9155
  filter: filter,
8611
9156
  filter_symbol: filter_symbol,
8612
9157
  filter_fill: filter_fill,
9158
+ filter_hillshade: filter_hillshade,
9159
+ filter_raster: filter_raster,
9160
+ "filter_raster-particle": {
9161
+ type: "boolean",
9162
+ doc: "Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
9163
+ "default": false,
9164
+ transition: false,
9165
+ "property-type": "data-driven",
9166
+ expression: {
9167
+ interpolated: false,
9168
+ parameters: [
9169
+ "zoom",
9170
+ "feature"
9171
+ ]
9172
+ }
9173
+ },
9174
+ filter_clip: filter_clip,
9175
+ filter_model: filter_model,
8613
9176
  filter_line: filter_line,
8614
9177
  filter_circle: filter_circle,
8615
9178
  "filter_fill-extrusion": {
@@ -8695,6 +9258,8 @@
8695
9258
  expression: expression$1,
8696
9259
  expression_name: expression_name,
8697
9260
  fog: fog,
9261
+ snow: snow,
9262
+ rain: rain,
8698
9263
  camera: camera,
8699
9264
  colorTheme: colorTheme,
8700
9265
  light: light,
@@ -8900,6 +9465,56 @@
8900
9465
  },
8901
9466
  "property-type": "data-driven"
8902
9467
  },
9468
+ "fill-extrusion-height-alignment": {
9469
+ type: "enum",
9470
+ experimental: true,
9471
+ values: {
9472
+ terrain: {
9473
+ doc: "The fill extrusion height follows terrain slope."
9474
+ },
9475
+ flat: {
9476
+ doc: "The fill extrusion height is flat over terrain."
9477
+ }
9478
+ },
9479
+ doc: "Controls the behavior of fill extrusion height over terrain",
9480
+ "default": "flat",
9481
+ requires: [
9482
+ "fill-extrusion-height"
9483
+ ],
9484
+ "sdk-support": {
9485
+ "basic functionality": {
9486
+ js: "3.8.0",
9487
+ android: "11.8.0",
9488
+ ios: "11.8.0"
9489
+ }
9490
+ },
9491
+ "property-type": "data-constant"
9492
+ },
9493
+ "fill-extrusion-base-alignment": {
9494
+ type: "enum",
9495
+ experimental: true,
9496
+ values: {
9497
+ terrain: {
9498
+ doc: "The fill extrusion base follows terrain slope."
9499
+ },
9500
+ flat: {
9501
+ doc: "The fill extrusion base is flat over terrain."
9502
+ }
9503
+ },
9504
+ doc: "Controls the behavior of fill extrusion base over terrain",
9505
+ "default": "terrain",
9506
+ requires: [
9507
+ "fill-extrusion-base"
9508
+ ],
9509
+ "sdk-support": {
9510
+ "basic functionality": {
9511
+ js: "3.8.0",
9512
+ android: "11.8.0",
9513
+ ios: "11.8.0"
9514
+ }
9515
+ },
9516
+ "property-type": "data-constant"
9517
+ },
8903
9518
  "fill-extrusion-vertical-gradient": {
8904
9519
  type: "boolean",
8905
9520
  "default": true,
@@ -14602,13 +15217,21 @@
14602
15217
  if (index < 0) {
14603
15218
  throw new RuntimeError(`Array index out of bounds: ${ index } < 0.`);
14604
15219
  }
14605
- if (index >= array2.length) {
15220
+ if (index > array2.length - 1) {
14606
15221
  throw new RuntimeError(`Array index out of bounds: ${ index } > ${ array2.length - 1 }.`);
14607
15222
  }
14608
- if (index !== Math.floor(index)) {
14609
- throw new RuntimeError(`Array index must be an integer, but found ${ index } instead.`);
15223
+ if (index === Math.floor(index)) {
15224
+ return array2[index];
14610
15225
  }
14611
- return array2[index];
15226
+ const lowerIndex = Math.floor(index);
15227
+ const upperIndex = Math.ceil(index);
15228
+ const lowerValue = array2[lowerIndex];
15229
+ const upperValue = array2[upperIndex];
15230
+ if (typeof lowerValue !== 'number' || typeof upperValue !== 'number') {
15231
+ throw new RuntimeError(`Cannot interpolate between non-number values at index ${ index }.`);
15232
+ }
15233
+ const fraction = index - lowerIndex;
15234
+ return lowerValue * (1 - fraction) + upperValue * fraction;
14612
15235
  }
14613
15236
  eachChild(fn) {
14614
15237
  fn(this.index);
@@ -16004,6 +16627,9 @@
16004
16627
  function supportsZoomExpression(spec) {
16005
16628
  return expressionHasParameter(spec.expression, 'zoom');
16006
16629
  }
16630
+ function supportsLineProgressExpression(spec) {
16631
+ return expressionHasParameter(spec.expression, 'line-progress');
16632
+ }
16007
16633
  function supportsInterpolation(spec) {
16008
16634
  return !!spec.expression && spec.expression.interpolated;
16009
16635
  }
@@ -16215,6 +16841,7 @@
16215
16841
  this._evaluator = new EvaluationContext(scope, options);
16216
16842
  this._defaultValue = propertySpec ? getDefaultValue(propertySpec) : null;
16217
16843
  this._enumValues = propertySpec && propertySpec.type === 'enum' ? propertySpec.values : null;
16844
+ this.configDependencies = getConfigDependencies(expression);
16218
16845
  }
16219
16846
  evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection, featureTileCoord, featureDistanceData) {
16220
16847
  this._evaluator.globals = globals;
@@ -16328,6 +16955,10 @@
16328
16955
  if (!isLightConstant && !supportsLightExpression(propertySpec)) {
16329
16956
  return error([new ParsingError$1('', 'measure-light expression not supported')]);
16330
16957
  }
16958
+ const isLineProgressConstant = isGlobalPropertyConstant(parsed, ['line-progress']);
16959
+ if (!isLineProgressConstant && !supportsLineProgressExpression(propertySpec)) {
16960
+ return error([new ParsingError$1('', 'line-progress expression not supported')]);
16961
+ }
16331
16962
  const canRelaxZoomRestriction = propertySpec.expression && propertySpec.expression.relaxZoomRestriction;
16332
16963
  const zoomCurve = findZoomCurve(parsed);
16333
16964
  if (!zoomCurve && !isZoomConstant && !canRelaxZoomRestriction) {
@@ -16338,12 +16969,12 @@
16338
16969
  return error([new ParsingError$1('', '"interpolate" expressions cannot be used with this property')]);
16339
16970
  }
16340
16971
  if (!zoomCurve) {
16341
- return success(isFeatureConstant$1 ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16972
+ return success(isFeatureConstant$1 && isLineProgressConstant ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16342
16973
  new ZoomConstantExpression('constant', expression.value, isLightConstant) : // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16343
16974
  new ZoomConstantExpression('source', expression.value, isLightConstant));
16344
16975
  }
16345
16976
  const interpolationType = zoomCurve instanceof Interpolate ? zoomCurve.interpolation : void 0;
16346
- return success(isFeatureConstant$1 ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16977
+ return success(isFeatureConstant$1 && isLineProgressConstant ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16347
16978
  new ZoomDependentExpression('camera', expression.value, zoomCurve.labels, interpolationType, isLightConstant) : // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16348
16979
  new ZoomDependentExpression('composite', expression.value, zoomCurve.labels, interpolationType, isLightConstant));
16349
16980
  }
@@ -16816,13 +17447,16 @@ Filter Expression:
16816
17447
  ${ JSON.stringify(filterExp, null, 2) }
16817
17448
  `);
16818
17449
  }
16819
- const filterSpec = v8[`filter_${ layerType }`];
16820
- const compiledStaticFilter = createExpression(staticFilter, filterSpec, scope, options);
16821
17450
  let filterFunc = null;
16822
- if (compiledStaticFilter.result === 'error') {
16823
- throw new Error(compiledStaticFilter.value.map(err => `${ err.key }: ${ err.message }`).join(', '));
16824
- } else {
16825
- filterFunc = (globalProperties, feature, canonical) => compiledStaticFilter.value.evaluate(globalProperties, feature, {}, canonical);
17451
+ let filterSpec = null;
17452
+ if (layerType !== 'background' && layerType !== 'sky' && layerType !== 'slot') {
17453
+ filterSpec = v8[`filter_${ layerType }`];
17454
+ const compiledStaticFilter = createExpression(staticFilter, filterSpec, scope, options);
17455
+ if (compiledStaticFilter.result === 'error') {
17456
+ throw new Error(compiledStaticFilter.value.map(err => `${ err.key }: ${ err.message }`).join(', '));
17457
+ } else {
17458
+ filterFunc = (globalProperties, feature, canonical) => compiledStaticFilter.value.evaluate(globalProperties, feature, {}, canonical);
17459
+ }
16826
17460
  }
16827
17461
  let dynamicFilterFunc = null;
16828
17462
  let needFeature = null;