@xweather/mapsgl 1.8.4 → 1.8.5

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/mapsgl.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @xweather/mapsgl - 1.8.4
3
+ * @xweather/mapsgl - 1.8.5
4
4
  * (c) 2026 Vaisala Xweather
5
5
  * License: BSD
6
6
  * https://www.xweather.com
package/dist/mapsgl.d.ts CHANGED
@@ -1693,15 +1693,6 @@ export declare class Bounds {
1693
1693
  constructor(left: number, right: number, top: number, bottom: number);
1694
1694
  }
1695
1695
 
1696
- /**
1697
- * Defines the granularity of subdivision for circles with `circle-pitch-alignment: 'map'` and for heatmap kernels.
1698
- * More subdivision will cause circles to more closely follow the planet's surface.
1699
- *
1700
- * Possible values: 1, 3, 5, 7.
1701
- * Subdivision of 1 results in a simple quad.
1702
- */
1703
- export declare type CircleGranularity = 1 | 3 | 5 | 7;
1704
-
1705
1696
  /**
1706
1697
  * Circle style properties control how circles get rendered on a map. Use these properties in conjunction with `fill`
1707
1698
  * and `stroke` to define the style for a circle layer.
@@ -2104,6 +2095,7 @@ export declare class DownloadManager<Task extends DownloadTask<any>> extends Eve
2104
2095
 
2105
2096
  /**
2106
2097
  * Gets the progress tracker for download operations.
2098
+ * Progress is calculated from actual task states for accuracy.
2107
2099
  * @returns The Progress instance tracking download statistics.
2108
2100
  */
2109
2101
  get progress(): Progress;
@@ -2129,12 +2121,6 @@ export declare class DownloadManager<Task extends DownloadTask<any>> extends Eve
2129
2121
  * @returns The cached task data, or undefined if not found.
2130
2122
  */
2131
2123
  get(key: string): TaskData<Task> | undefined;
2132
- /**
2133
- * Sets the tile fetcher function to use for requests.
2134
- * The fetcher function should return a Promise that resolves with a Response object.
2135
- * @param fetcher -
2136
- */
2137
- setFetcher(fetcher: Fetcher<Task>): void;
2138
2124
  /**
2139
2125
  * Sets the task runner function used to execute download tasks.
2140
2126
  * @param runner - The task runner function that handles task execution with retry logic.
@@ -2160,13 +2146,15 @@ export declare class DownloadManager<Task extends DownloadTask<any>> extends Eve
2160
2146
  * @param predicate - A callback that receives a task and returns true for a match.
2161
2147
  */
2162
2148
  hasTask(predicate: (task: Task) => boolean): boolean;
2149
+ private _totalTasks;
2163
2150
  /**
2164
2151
  * Adds a task to the download queue and optionally starts processing.
2165
2152
  * Tasks are organized by host for per-host concurrency control and sorted by priority.
2166
2153
  * @param task - The download task to enqueue.
2167
2154
  * @param start - If true, immediately starts processing the queue. Defaults to true.
2155
+ * @param isRetry - If true, this is a retry and should not increment total. Defaults to false.
2168
2156
  */
2169
- enqueue(task: Task, start?: boolean): void;
2157
+ enqueue(task: Task, start?: boolean, isRetryParam?: boolean): void;
2170
2158
  /**
2171
2159
  * Aborts a specific download task.
2172
2160
  * If the task is in-flight, the request is aborted. If pending, it's removed from the queue.
@@ -2179,6 +2167,9 @@ export declare class DownloadManager<Task extends DownloadTask<any>> extends Eve
2179
2167
  * @param predicate - A callback that receives a task and returns true if it should be aborted.
2180
2168
  */
2181
2169
  abortWhere(predicate: (task: Task) => boolean): void;
2170
+ /**
2171
+ * Aborts all tasks.
2172
+ */
2182
2173
  abortAll(): void;
2183
2174
 
2184
2175
  }
@@ -2413,16 +2404,25 @@ export declare interface EncodedRasterDataset {
2413
2404
  */
2414
2405
  export declare interface EncodedSourceSpecification<Dataset extends EncodedRasterDataset> extends TileSourceSpecification {
2415
2406
  /**
2416
- * The datasets that are encoded in the tile data.
2407
+ * The datasets that are encoded in the tile data. These are used for requesting tiles from the server.
2408
+ * If the data is transformed (e.g., converting precip to snowfall), use `effectiveDatasets` to provide
2409
+ * the transformed datasets with updated dataMin/dataMax values for operations and rendering.
2417
2410
  */
2418
2411
  datasets: Array<Partial<Dataset>>;
2412
+ /**
2413
+ * The effective datasets used for operations and rendering. If not provided, defaults to `datasets`.
2414
+ * Use this when data transformations change the dataMin/dataMax values (e.g., converting precipitation
2415
+ * to snowfall). The original `datasets` are still used for tile requests.
2416
+ */
2417
+ effectiveDatasets?: Array<Partial<Dataset>>;
2419
2418
  /**
2420
2419
  * Optional function to transform tile data after it has been loaded. This allows for custom processing or
2421
2420
  * modification of the tile data before it is used for rendering, such as converting it to other values
2422
2421
  * derived from the original encoded data.
2423
2422
  * @param data - The loaded tile data as an RGBA image.
2424
2423
  * @param datasets - An array of dataset objects associated with this source, which contains information about the
2425
- * original encoded data and its value ranges.
2424
+ * original encoded data and its value ranges. This array can be modified in-place to update dataMin/dataMax
2425
+ * values for transformed data.
2426
2426
  */
2427
2427
  transformTileData?: (data: RGBAImage, datasets: Array<Dataset>) => void;
2428
2428
  }
@@ -2441,8 +2441,8 @@ export declare class EncodedTileSource<Source extends EncodedSourceSpecification
2441
2441
 
2442
2442
  get type(): string;
2443
2443
  constructor(id: string, spec: Partial<Source>);
2444
-
2445
- /**
2444
+
2445
+ /**
2446
2446
  * Returns the metadata for the specified band, if available.
2447
2447
  * @param band - The band to get metadata for.
2448
2448
  * @returns
@@ -2771,6 +2771,10 @@ export declare type GeoJsonProperties = {
2771
2771
  * A subclass of {@link VectorTileSource} that is used to represent GeoJSON data.
2772
2772
  */
2773
2773
  export declare class GeoJSONSource extends VectorTileSource {
2774
+ /**
2775
+ * Whether the GeoJSON data is dynamic, meaning it will be updated frequently. Default is `false`.
2776
+ */
2777
+ dynamic: boolean;
2774
2778
 
2775
2779
  private _transformGeoJSON?;
2776
2780
  get type(): string;
@@ -2783,8 +2787,9 @@ export declare class GeoJSONSource extends VectorTileSource {
2783
2787
  * The GeoJSON data associated with the source, either provided statically or from a remote source.
2784
2788
  */
2785
2789
  get data(): GeoJSONFeatureCollection;
2786
- private coalesce;
2787
2790
  private pendingLoad;
2791
+ private needsUpdate;
2792
+ private dataRevision;
2788
2793
  constructor(id: string, spec: Partial<GeoJSONSourceSpecification>);
2789
2794
  /**
2790
2795
  * Sets the URL of the GeoJSON data.
@@ -2805,6 +2810,7 @@ export declare class GeoJSONSource extends VectorTileSource {
2805
2810
  expireAllTiles(): void;
2806
2811
  reload(): void;
2807
2812
  private updateWorkerData;
2813
+ private processWorkerUpdate;
2808
2814
  }
2809
2815
 
2810
2816
  /**
@@ -2819,6 +2825,10 @@ export declare interface GeoJSONSourceSpecification extends SourceSpecification
2819
2825
  * The GeoJSON URL template string to use when requesting GeoJSON data.
2820
2826
  */
2821
2827
  url: string;
2828
+ /**
2829
+ * Whether the GeoJSON data is dynamic, meaning it will be updated frequently. Default is `false`.
2830
+ */
2831
+ dynamic?: boolean;
2822
2832
  /**
2823
2833
  * A function that transforms the GeoJSON data before it is sent to the worker for processing.
2824
2834
  * @param source - The GeoJSON source.
@@ -3358,6 +3368,14 @@ export declare interface LayerSpecification {
3358
3368
  * Type of layer.
3359
3369
  */
3360
3370
  type: LayerType;
3371
+ /**
3372
+ * The minimum zoom level for the layer.
3373
+ */
3374
+ minZoom?: number;
3375
+ /**
3376
+ * The maximum zoom level for the layer.
3377
+ */
3378
+ maxZoom?: number;
3361
3379
  /**
3362
3380
  * Data source associated with the layer.
3363
3381
  * @remarks
@@ -4101,14 +4119,14 @@ get needsViewportUpdate(): boolean;
4101
4119
 
4102
4120
  /**
4103
4121
  * Adds a new weather layer to the map.
4104
- * @param id - One of the supported weather layer identifiers.
4122
+ * @param idOrConfig - One of the supported weather layer identifiers or a weather layer configuration object.
4105
4123
  * @param overrides - An object containing data and render style overrides for the weather layer.
4106
4124
  * @param beforeId - The identifier of an existing map layer to insert the new layer before, which will result in
4107
4125
  * the new layer appearing below the target layer. If not provided, then the new layer will be added to the end of
4108
4126
  * the layer stack and above all other layers.
4109
4127
  * @returns The newly added map layer or an array of layers if the weather layer identifier maps to multiple layers.
4110
4128
  */
4111
- addWeatherLayer(id: string, overrides?: Partial<WeatherLayerOptions>, beforeId?: string): WebGLLayer | Array<WebGLLayer>;
4129
+ addWeatherLayer(idOrConfig: WeatherLayerConfiguration | string, overrides?: Partial<WeatherLayerOptions>, beforeId?: string): WebGLLayer | Array<WebGLLayer>;
4112
4130
  /**
4113
4131
  * Removes a weather layer from the map.
4114
4132
  * @param id - One of the supported weather layer identifiers.
@@ -4909,22 +4927,22 @@ export declare const ParticleDensity: {
4909
4927
  * Least amount of particles will be rendered. This density setting may not provide enough speed and direction
4910
4928
  * information on the map since coverage is minimal. Sets the particle count per tile to 8^2.
4911
4929
  */
4912
- readonly minimal: 8;
4930
+ readonly minimal: 16;
4913
4931
  /**
4914
4932
  * Slightly less particle density than `normal`, allowing the most visibiilty to content underneath while
4915
4933
  * providing good speed and direction information. Sets the particle count per tile to 16^2.
4916
4934
  */
4917
- readonly low: 24;
4935
+ readonly low: 32;
4918
4936
  /**
4919
4937
  * Provides a good amount of particles and speed and direction information while still allowing a good portion
4920
4938
  * of content underneath to remain visible. Sets the particle count per tile to 48^2.
4921
4939
  */
4922
- readonly normal: 48;
4940
+ readonly normal: 64;
4923
4941
  /**
4924
4942
  * Slightly higher particle density than `normal` while still allowing some content underneath to remain visible.
4925
4943
  * Sets the particle count per tile to 76^2.
4926
4944
  */
4927
- readonly high: 76;
4945
+ readonly high: 96;
4928
4946
  /**
4929
4947
  * Highest density that will essentially fill the layer with particle data, preventing content underneath from
4930
4948
  * being visible. Note that overall map performance may be affected with this setting for some hardware
@@ -5773,6 +5791,8 @@ export declare const styles: {
5773
5791
  };
5774
5792
  prate: (string | number)[];
5775
5793
  precip_accum: (string | number)[];
5794
+ sleet_accum: (string | number)[];
5795
+ ice_accum: (string | number)[];
5776
5796
  radar: {
5777
5797
  rain: (string | number)[];
5778
5798
  mix: (string | number)[];
@@ -5794,93 +5814,7 @@ export declare const styles: {
5794
5814
  * data-driven styling.
5795
5815
  */
5796
5816
  export declare type StyleValue<T> = T | ((data: StylableData) => T);
5797
-
5798
- /**
5799
- * Controls how much subdivision happens for a given type of geometry at different zoom levels.
5800
- */
5801
- export declare class SubdivisionGranularityExpression {
5802
- /**
5803
- * A tile of zoom level 0 will be subdivided to this granularity level.
5804
- * Each subsequent zoom level will have its granularity halved.
5805
- */
5806
- private readonly _baseZoomGranularity;
5807
- /**
5808
- * No tile will have granularity level smaller than this.
5809
- */
5810
- private readonly _minGranularity;
5811
- constructor(baseZoomGranularity: number, minGranularity: number);
5812
- getGranularityForZoomLevel(zoomLevel: number): number;
5813
- }
5814
-
5815
- export declare interface SubdivisionGranularityOptions {
5816
- /**
5817
- * Granularity settings used for fill and fill-extrusion layers (for fill, both polygons and their anti-aliasing outlines).
5818
- */
5819
- fill: {
5820
- base: number;
5821
- min: number;
5822
- };
5823
- /**
5824
- * Granularity used for the line layer.
5825
- */
5826
- line: {
5827
- base: number;
5828
- min: number;
5829
- };
5830
- /**
5831
- * Granularity used for geometry covering the entire tile: stencil masks, raster tiles, etc.
5832
- */
5833
- tile: {
5834
- base: number;
5835
- min: number;
5836
- };
5837
- /**
5838
- * Granularity used for stencil masks for tiles.
5839
- */
5840
- stencil: {
5841
- base: number;
5842
- min: number;
5843
- };
5844
- /**
5845
- * Controls the granularity of `pitch-alignment: map` circles and heatmap kernels.
5846
- * More granular circles will more closely follow the map's surface.
5847
- */
5848
- circle: CircleGranularity;
5849
- }
5850
-
5851
- /**
5852
- * An object describing how much subdivision should be applied to different types of geometry at different zoom levels.
5853
- */
5854
- export declare class SubdivisionGranularitySetting {
5855
- /**
5856
- * Granularity settings used for fill and fill-extrusion layers (for fill, both polygons and their anti-aliasing outlines).
5857
- */
5858
- readonly fill: SubdivisionGranularityExpression;
5859
- /**
5860
- * Granularity used for the line layer.
5861
- */
5862
- readonly line: SubdivisionGranularityExpression;
5863
- /**
5864
- * Granularity used for geometry covering the entire tile: raster tiles, etc.
5865
- */
5866
- readonly tile: SubdivisionGranularityExpression;
5867
- /**
5868
- * Granularity used for stencil masks for tiles.
5869
- */
5870
- readonly stencil: SubdivisionGranularityExpression;
5871
- /**
5872
- * Controls the granularity of `pitch-alignment: map` circles and heatmap kernels.
5873
- * More granular circles will more closely follow the map's surface.
5874
- */
5875
- readonly circle: CircleGranularity;
5876
- constructor(options: SubdivisionGranularityOptions);
5877
- /**
5878
- * Granularity settings that disable subdivision altogether.
5879
- */
5880
- static readonly noSubdivision: SubdivisionGranularityOptions;
5881
- static readonly globeSubdivision: SubdivisionGranularityOptions;
5882
- }
5883
-
5817
+
5884
5818
  /**
5885
5819
  * Supported color bands.
5886
5820
  */
@@ -6054,8 +5988,6 @@ export declare type TaskRunner<Task extends DownloadTask<any>> = (task: Task, co
6054
5988
  * @template Task - The download task type that extends DownloadTask
6055
5989
  */
6056
5990
  export declare interface TaskRunnerConfig<Task extends DownloadTask<any>> {
6057
- /** Function that performs the fetch operation. */
6058
- fetcher: Fetcher<Task>;
6059
5991
  /** Maximum number of retry attempts for failed tasks. */
6060
5992
  maxRetries: number;
6061
5993
  /** HTTP status code range [min, max] that triggers retry attempts. */
@@ -6373,16 +6305,7 @@ export declare type TileCoordinateBounds = {
6373
6305
  nw: TileCoordinate;
6374
6306
  se: TileCoordinate;
6375
6307
  };
6376
-
6377
- export declare class TileDownloadTask extends DownloadTask<{
6378
- data: Blob;
6379
- headers: Headers;
6380
- }> {
6381
- readonly coord: TileCoord;
6382
- readonly intervals: Array<number>;
6383
- constructor(key: string, coord: TileCoord, intervals: Array<number>, url: string, options: Partial<TileRequestOptions>, priority?: DownloadPriority);
6384
- }
6385
-
6308
+
6386
6309
  export declare interface TileInfo {
6387
6310
  x: number;
6388
6311
  y: number;
@@ -6516,13 +6439,13 @@ constructor(id: string, spec: Partial<Source>);
6516
6439
  */
6517
6440
  hasTile(coord: TileCoord, layerId?: string): boolean;
6518
6441
  /**
6519
- * Returns whether or not the source has tile data for the given tile coordinate. If the tile's state is `expired`,
6520
- * this method will return `false` even if the tile has data.
6442
+ * Checks if tile data exists for the given coordinate.
6521
6443
  * @param coord - The tile coordinate.
6522
- * @param layerId -
6523
- * @returns Whether or not the source has tile data for the given tile coordinate.
6444
+ * @param layerId - Optional layer ID for per-layer data (unused but retained for API compatibility).
6445
+ * @param allowExpired - If true, allows expired tiles to be considered as having data.
6446
+ * @returns Whether tile data exists (optionally including expired/stale).
6524
6447
  */
6525
- hasTileData(coord: TileCoord, layerId?: string): boolean;
6448
+ hasTileData(coord: TileCoord, layerId?: string, allowExpired?: boolean): boolean;
6526
6449
  /**
6527
6450
  * Returns the data for the given tile coordinate.
6528
6451
  * @param coord - The tile coordinate.
@@ -6547,7 +6470,7 @@ constructor(id: string, spec: Partial<Source>);
6547
6470
  * @param options - Additional options to use when requesting the tile.
6548
6471
  * @returns A promise that resolves with the tile data.
6549
6472
  */
6550
- requestTile(coord: TileCoord, options?: Partial<TileRequestOptions>): Promise<Data>;
6473
+ requestTile(coord: TileCoord, options?: Partial<TileRequestOptions>): Promise<Data | null>;
6551
6474
  /**
6552
6475
  * Returns a tile instance for the given tile coordinate. If the tile does not exist, it will be created and added
6553
6476
  * to the cache.
@@ -6940,6 +6863,11 @@ export declare type TimeSeriesOperation = {
6940
6863
  * Bands to restrict the operation to. If not specified, the operation will be applied to all bands.
6941
6864
  */
6942
6865
  bands?: Array<ColorBand>;
6866
+ /**
6867
+ * The data range to remap the data to. If not specified, the data range will not be remapped and use provided data
6868
+ * range or the range based on the datasets being used by the operation.
6869
+ */
6870
+ remappedDataRange?: ValueRange;
6943
6871
  };
6944
6872
 
6945
6873
  /**
@@ -7246,19 +7174,19 @@ export declare class VectorTileSource extends TileSource<VectorData, VectorSourc
7246
7174
 
7247
7175
  constructor(id: string, spec: Partial<VectorSourceSpecification>);
7248
7176
  hasTile(coord: TileCoord, layerId?: string): boolean;
7249
- hasTileData(coord: TileCoord, layerId?: string): boolean;
7177
+ hasTileData(coord: TileCoord, layerId?: string, allowExpired?: boolean): boolean;
7250
7178
  expireAllTiles(): void;
7251
7179
  expireTile(tile: Tile<VectorData>): void;
7252
7180
  /**
7253
7181
  * Refreshes the data for all tiles in the source.
7254
7182
  */
7255
- refreshAllTileData(): void;
7183
+ refreshAllTileData(layerId?: string): void;
7256
7184
  /**
7257
7185
  * Refreshes the data for a single tile in the source by re-parsing the existing data. This is useful when the
7258
7186
  * filter expression has changed for a consuming layer.
7259
7187
  * @param tile - The tile to refresh.
7260
7188
  */
7261
- refreshTileData(tile: Tile<VectorData>): Promise<void>;
7189
+ refreshTileData(tile: Tile<VectorData>, layerId?: string): Promise<void>;
7262
7190
 
7263
7191
  }
7264
7192
 
@@ -7375,6 +7303,14 @@ export declare type WeatherLayerOptions = {
7375
7303
  * The render style to use for rendering the layer's data.
7376
7304
  */
7377
7305
  type: LayerType;
7306
+ /**
7307
+ * The minimum zoom level for the layer.
7308
+ */
7309
+ minZoom?: number;
7310
+ /**
7311
+ * The maximum zoom level for the layer.
7312
+ */
7313
+ maxZoom?: number;
7378
7314
  /**
7379
7315
  * Whether the layer should be hidden by default. Default is `false`.
7380
7316
  */
@@ -7477,6 +7413,12 @@ constructor(account: Account);
7477
7413
  * Returns the metadata for all available weather layers.
7478
7414
  */
7479
7415
  getLayerMetadata(): Promise<Array<WeatherLayerMetadata>>;
7416
+ /**
7417
+ * Returns a weather layer configuration for the specified Xweather Raster Maps layer code.
7418
+ * @param code - The raster layer code to get the configuration for.
7419
+ * @returns The weather layer configuration.
7420
+ */
7421
+ getRasterLayerConfig(code: string): WeatherLayerConfiguration;
7480
7422
  /**
7481
7423
  * Returns the weather layer configuration for the specified weather code. If the code represents a combined layer,
7482
7424
  * then an array of weather codes will be returned instead.
@@ -7510,6 +7452,14 @@ declare abstract class WebGLLayer<Source extends DataSource = DataSource> extend
7510
7452
  * The type of layer.
7511
7453
  */
7512
7454
  type: LayerType;
7455
+ /**
7456
+ * The minimum zoom level for the layer.
7457
+ */
7458
+ minZoom: number;
7459
+ /**
7460
+ * The maximum zoom level for the layer.
7461
+ */
7462
+ maxZoom: number;
7513
7463
  /**
7514
7464
  * The map controller that this layer is associated with.
7515
7465
  */