Changelog

Changelog

1.4.1

Jan 30, 2024

✨ Features

  • Add support for land and water masks for weather layers.
  • Add support for custom sample expression chunks in shaders to perform custom calculations on the encoded data.
  • Add opacity property at the root of paint styles to control the entire layer's opacity for all layer render styles.

🛠 Improvements

  • Improve layer mask handling, update to load global data tile when added.
  • Improve bar legend cell layout calculations.
  • Validate Legend options.width and clamp to min value.
  • Improve particle density calculations across map sizes for better consistency.
  • Set default particle count to 0 with normal density.
  • Revert default layer quality to normal for sample fill layers.

🐞 Bug Fixes

  • Check current/next data when calculating data meld progress.
  • Don't resume animation after pan/load if explicitly paused.
  • Fix autoplay not working for timeline/animations.
  • Right-size animation tile LRU cache for total visible tiles.
  • Set initial time series data when layer is added and using existing data source.
  • Fix d.ts generation issues for NPM package.
  • Update default data evaluator to support object values.
  • Fix color LUT value range assignment using draw range.
  • Fix data range calculations for custom shader expressions.
  • Fix occasional shader errors due to ValueRange struct.
  • Fix context not resizing/redrawing on map resize.
  • Pass inset from map control options to legend instances.
  • Properly handle array of two values for legend insets.
  • Set colorInterval to non-zero value if total colors need reducing.
  • Invalidate context size when resizing map.
  • Add setSize method to MapController, fix size/resize invalidation issues.
  • Reset particle trail state on animation restart/stop.
  • Fix layer mask issues when using with Google Maps.
  • Support new layer opacity for all renderer types.
  • Clamp color scale value range to layer's drawRange.
  • Fix sample data range not being set from color scale range override for shader.

1.4.0

Oct 25, 2023

🚨 Deprecated Weather Layers

Global weather conditions layers now contain both archive and forecast data and will return the appropriate data based on the requested time. Therefore, the previous forecast-specific weather layers (prefixed with f) have been deprecated and will fall back to the primary layer if used.

For example, adding temperatures will now display the same data as temperatures and ftemperatures depending on time.

Refer to the weather layers documentation for the updated list of supported layers.

✨ Features

  • Update weather conditions layers to use combined past/future data source.
  • Add Road Weather layers for Japan: road-weather-summary-japan, froad-weather-summary-japan, road-weather-surface-japan, and froad-weather-surface-japan.
  • Add tropical cyclone layers. See the list of supported tropical cyclone layers.
  • Add raster satellite layers: satellite, satellite-visible, satellite-geocolor, satellite-water-vapor, satellite-infrared-color.
  • Add precip and cloud-cover layers.

🐞 Bug Fixes

  • Fix timeline not resetting to current time when stopped.
  • Fix missing workers in NPM bundle.
  • Reload source metadata when timeline range changes.
  • Reload data when geojson data source url changes.
  • Fix stroke opacity style not being applied to vector layers.
  • Fix missing legend for pressure-msl-contour layer.

🛠 Improvements

  • Check metadata response status code before parsing.
  • Don't add deprecated layer aliases if already exists on map.
  • Improve handling of existing layer checks.
  • Improve encoded data processing performance for inspector query.
  • Improve resource clean up on disposal.

1.3.5

Oct 11, 2023

🐞 Bug Fixes

  • Fix Aeris authentication token not refreshing on 401 tile responses at times.
  • Better handling of removed Mapbox map instance, force resource disposal.

1.3.4

Sep 20, 2023

✨ Features

  • Refactor time-based data animations to support interleaved interval loading with improved caching. Now more data intervals can be requested for an animation concurrently while the initial data is animating, which leads to gradually smoother and more detailed animations as more data loads.

🛠 Improvements

  • Improve time series support for encoded/vector tile layers.
  • Improve and optimize memory management and disposal for animation data.
  • Adjust max time series intervals based on desktop/mobile for animation to reduce data usage on mobile devices.
  • Improve encoded tile loading and parsing performance.

🐞 Bug Fixes

  • Fix now reference time for layer visibility check based on timeline playhead position.
  • Update dynamic legends on map timeline advance.
  • Fix encoded tile source loading after time handling changes.
  • Fix unnecessary tile request calls on map move.
  • Improve url timestamp handling for vector Raster Maps tile requests.
  • Optimize particle updates when the associated layer/source data is dirty.
  • Properly reset particle state when map bounds changes.
  • Set particle density to ParticleDensity.count if count is 0.
  • Fix layers not always rendering on timeline scrub when not animating.
  • Properly convert ISO date string to dates, various valid time improvements.
  • Fix air quality point layer category color assignment.

1.3.3

Aug 23, 2023

🐞 Bug Fixes

  • Fix particle rendering to apply particle color to the state alpha values.
  • Fix incorrect legend code for feels-like layer.

1.3.2

Aug 15, 2023

✨ Features

  • Add improved land masking for maritime-related layers.
  • Add MapController properties to return active source/layer ids (sourceIds, layerIds and weatherLayerIds).

🛠 Improvements

  • Improve particle density scale calculations, set default density to 'normal'.

🐞 Bug Fixes

  • Don't return null vector object for empty sample layer feature query.
  • Fix Leaflet/Google rendering and resize issues with layer masks.
  • Fix render update not triggered on layer removal for leaflet.
  • Fix timeline scrubbing not always working for encoded sources.
  • Fix vector data inspector query not always returning proper data.
  • Support multi-layer alias for hasWeatherLayer check.
  • Fix particle alpha when initializing during pan/zoom.

1.3.1

Jul 1, 2023

🐞 Bug Fixes

  • Fix issue with wind/wave particles not rendering properly due to a bug introduced in 1.3.0.

1.3.0

Jun 30, 2023

This version now includes support for the new Vaisala Xweather Road Weather data sets with new layers: road-weather-summary-us, road-weather-surface-us, road-weather-summary-europe, and road-weather-surface-europe. Learn more about Vaisala Xweather Roads (opens in a new tab).

✨ Features

  • Add support for new Vaisala Xweather Road Weather data sets and layers.
  • Add support for feature filters in vector layers.
  • Add support for masking layers using another layer.

🛠 Improvements

  • Update vector web worker to use transferable objects for optimization.
  • Various performance improvements and optimizations.

🐞 Bug Fixes

  • Fix point legend values concatenating instead of replacing when updating.
  • Set minZoom/maxZoom from metadata if defined.
  • Fix depthRange issues when using MapsGL with Mapbox.
  • Use PM2.5 instead of PM2P5 for air quality layer data evaluator.

1.2.4

Jun 8, 2023

✨ Features

  • Adds new maritime layers. See the sst, ocean-, wave-, and swell- layer identifiers.
  • Adds new lightning-all and lightning-flash layers.

🛠 Improvements

  • Renamed air-quality-aqi to air-quality-index and air-quality-aqi-categories to air-quality-index-categories. The previous layer codes will continue working as aliases.

🐞 Bug Fixes

  • Fix issues with WebGL2 support checks.
  • Improve nodata edge rendering.

1.2.3

May 12, 2023

🐞 Bug Fixes

  • Fix base MapsGL server path.

1.2.2

May 11, 2023

✨ Features

  • Adds new weather layers for our Vaisala Xweather high-resolution global Air Quality forecast model. See the air-quality-xxx layer identifiers based on dataset and pollutant.

1.2.1

May 2, 2023

🐞 Bug Fixes

  • Fix flipped wind particle y-axis direction.

1.2.0

Apr 11, 2023

✨ Features

  • Adds support for new session-based MapsGL server authorization.
  • Add width paint options, improve interval calculations for contour paint style type.
  • Add support for timeRange on layer config in order to restrict a layer's visibility to a specific time range during animation.
  • Support clamping tile source requests to a specific coordinate bounds, in which case tiles will not be requested if they fall outside of this bounds.
  • Support nodata when using interpolation for the sample paint style.

🛠 Improvements

  • Improve support for custom encoded data sources and tile layers.
  • Support disabling missing data interval requests.
  • Only trigger a redraw if any layer is flagged as dirty.
  • Improve source metadata typesdefs.
  • Support different width and height values for a tile's size.

🐞 Bug Fixes

  • Fix relative time conversion and support relative time in config when configuring a timeline's start/end range.
  • Fix and improve animation handling for encoded layers.
  • Fix data inspector issues for nodata support.
  • Fix various issues regarding removing and re-adding layers as well as handling layer visibility.
  • Use render buffer pixel ratio for viewport scale instead of devicePixelRatio.

1.1.2

Feb 9, 2023

🐞 Bug Fixes

  • Fix missing typedefs for NPM module.

1.1.1

Feb 9, 2023

✨ Features

  • Add enable/disable support to data inspector control.
  • Add fullscreen toggle support to MapController via toggleFullscreen().
  • Add support for particle.density paint property, which adjusts the particle density based on overall viewport size and resolution to retain a similar density across different screen sizes.

🛠 Improvements

  • Improve NPM module usage and Typescript typedefs.
  • Improve contour rendering and interval calculation.
  • Improve heatmap defaults and rendering.
  • Properly dispose resources on MapController.dispose.
  • Return data inspector/legend control instances from add methods.
  • Default styling improvements to built-in weather layers.
  • Various bundle optimizations and memory improvements.

🐞 Bug Fixes

  • Fix data inspector not working if added after layers.
  • Fix render issues when resizing the render context/viewport.
  • Fix bad zoom scaling when panning for raster render type.
  • Fix canvas transformation error with raster Google Maps.
  • Fix missing map container div reference causing tooltip position issues.
  • Fix LegendControl units toggle not working on click.
  • Disable data inspector time interpolation when meld disabled.
  • Fix Google Maps issue where layers don't render initially until bounds changes.
  • Fix map library version checks in controller.
  • Fix tile data cache issues during animation state changes.
  • Fix particle rendering issue when canvas is resized.
  • Skip data inspector evaluator if empty object.
  • Update animation goTo method to no use total duration.
  • Use nearest filter for color LUT texture when sample interpolation is disabled.
  • Fix precip layer configs, add missing weather layers.

1.1.0

Nov 30, 2022

✨ Features

  • Add support for Google Maps.
  • Add support for MapLibre.
  • Add setCenter/setZoom to map controllers.
  • Support pausing animation while required data loads.

🛠 Improvements

  • Better handle WebGL2 context creation.
  • Properly dispose resources on MapController.dispose.

🐞 Bug Fixes

  • Fix data inspector not working if added after layers.
  • Add delay when resizing FBO buffers on window resize events.
  • Convert shader to ES 3.0 syntax at compile time if using a WebGL2 context.
  • Avoid starting new RenderLoop handle if already running.
  • Unbind vertex array when resetting WebGL state.
  • Fix bad zoom scaling when panning for raster render type.
  • Fix map renderer type check at initialization.
  • Fix resize handling for raster render type.
  • Fix map controller viewport info not being set at initialization.
  • Resize particles FBO when canvas context is resized.
  • Fix precip weather layer configs, add missing weather layers.

1.0.1

Sep 6, 2022

✨ Features

  • Support external/manual advancing of animations.

🐞 Bug Fixes

  • Fix useTotalDuration not being passed via advance.
  • Force tile data layout metadata to be integers.
  • Handle undefined data evaluators, add evaluator for visibility.

1.0.0

Aug 1, 2022

🛠 Improvements

  • Add isActive prop to animations to handle playing or paused.
  • Increase default radar data quality.

🐞 Bug Fixes

  • Fix premultiplied alpha in shaders.
  • Fix tooltip positioning when not fullscreen.

1.0.0-beta.5

Jul 22, 2022

🛠 Improvements

  • Prefix layer key with id for layer id uniqueness.

🐞 Bug Fixes

  • Discard vector points outside draw range.
  • Fix issue where opacity was not working properly for sample fill layers.

1.0.0-beta.4

Jun 24, 2022

🚨 Breaking changes

  • Public interface in the global scope has been changed to aerisweather.mapsgl for the SDK. Previously this was defined as aerisgl but has changed in this release. The SDK documentation has been updated to reflect this change as of 1.0.0-beta.4.

✨ Features

  • Add data inspector control and built-in data evaluators.
  • Add support for nowcast/fradar dataset.
  • Create base styles.css for map controls.
  • Support clamping layers to past/future time ranges only.
  • Support full gradient for sample fill when setting sample.colorscale.interval to 0.
  • Update layer visibility based on animator time mode.

🛠 Improvements

  • Allow custom data loader for GeoJSON worker.
  • Use gradient color scale when interval is 0.

🐞 Bug fixes

  • Update texture parameters properly based on state.
  • Add color for fire stormreport type.
  • Fix map feature query when using Promises.
  • Invalidate time series when animation time range changes.
  • Prevent runaway tile requests for time series data.
  • Properly update timeline child animation delay and duration props.
  • Skip tile request when cached tile is in failed state.

1.0.0-beta.3

Jun 10, 2022

✨ Features and improvements

  • Add support for dynamic point legends. See the points.values configuration for more details.
  • Add built-in legend for the alerts weather layer. This is a dynamic legend that will show alert information for active alerts within the visible map bounds.
  • Add support for re-ordering layers in the stack. See moveLayer method for more details.
  • Cancel pending data source requests when all consuming layers have been hidden or removed from the map.
  • Improve handling of hidden layers in the render loop.
  • Update color scale for the wind-speed weather layer to improve differentation between values at higher values.

🐞 Bug fixes

  • Fix rendering issue on some Android devices related to sample layer animations.
  • Fix disposal of resources and event handlers when layers are removed from the map.
  • Fix parsing and rendering of data when using a geojson data source with a static GeoJSON object for the data.
  • Fix opacity not rendering properly for the raster layer style.

1.0.0-beta.2

May 27, 2022

✨ Features and improvements

  • Add new legend support with auto-configured legends for the built-in weather layers. See our getting started guide for legends for more information.
  • Update default lightning-strike weather layer styling for improve differentiation between data categories.

🐞 Bug fixes

  • Fix heatmap layers not rendering.
  • Fix fill opacity for circle layer styles.
  • Fix grid renderer not updating spacing and symbol sizes on paint style changes.
  • Improve handling of hidden layers based on visible property.
  • Disable animations associated with hidden layers.

⚠️ Known issues

  • Legends are not currently configured for the alerts weather layer. This will be available in an upcoming beta release.
  • Rendering issue on some Android devices when animating encoded data with sample layers.

1.0.0-beta.1

May 13, 2022

  • Initial beta release

⚠️ Known issues

  • Heatmap layer styles are not rendering properly.
  • Opacity does not work properly for filled circle layer styles.