Skip to content

Releases: visgl/deck.gl

v5.2.1

01 May 01:26
Compare
Choose a tag to compare
  • use baseline:hanging if advanced text metrics is not supported (#1753)
  • Update example links in README.md (#1744)
  • Fix standalone bundle inline version (#1746)
  • handle right button pan in MapControls (#1745)

v5.2.0

24 Apr 19:59
Compare
Choose a tag to compare

deck.gl v5.2

Release date: April 24, 2018

New TextLayer

ScreenGridLayer Color Scale

Automated Render Tests @deck.gl/test-utils

Use deck.gl without React

deck.gl can now be used in non-React applications. A new top-level JavaScript class Deck is provided as an alternative to the traditional top-level DeckGL React component, and the core deck.gl npm module no longer has any React dependencies. This allows deck.gl to be used in any JavaScript application or framework.

The new non-React API is officially supported, however since it is not yet extensively battle-tested in applications there may be some rough corners, so to help developers set expectations we are labeling this as a "pre release" intended for early adopters.

Scripting Support

deck.gl now publishes a bundle that can be imported using a simple <script> statement in HTML to give access to the deck.gl API. This makes deck.gl easy to use in e.g. "codepens" and for casual programming and visualizations.

Multiple Modules

deck.gl is now published as multiple npm modules allowing applications to choose which features to import. The basic modules are:

  • @deck.gl/core - the core deck.gl API (JavaScript classes, including the Deck top-level class).
  • @deck.gl/react - React bindings for deck.gl (i.e. the top-level DeckGL React class).
  • deck.gl - The classic module is still supported for backwards compatibility with React applications.

Multi-Viewport Support

deck.gl allows you to divide your screen into multiple viewports and render layers from different perspectives. It is e.g. possible to render a top-down map view next to a first person view and allow your users to "walk around" in the city onto which your data is overlaid.

The Deck.views property accepts instances of View classes, such as MapView and FirstPersonView:

<DeckGL
  views=[
    new MapView({id: 'map', width: '50%'}),
    new FirstPersonView({x: '50%', width: '50%'})
  ]
/>

MapController

It is now possible to specify a MapController as a controller for the Deck or DeckGL classes, instead of relying on e.g. react-map-gl or experimental classes to drive event handling.

Automatic Resize Handling

It is no longer necessary for deck.gl applications to track screen size and manage the exact width and height of the Deck or DeckGL components. width and height can now be specified using CSS descriptors (e.g. width = 100%):

<DeckGL width='100%' height='100%'/>

Layers

TextLayer (New)

A TextLayer has been added to the core layer catalog for rendering labels with WebGL.

ScreenGridLayer

Color Scale Support (Experimental) - New experimental props colorRange and colorDomain are added to ScreenGridLayer. These props provide more fine tune control over how grid cells are colored, and brings the ScreenGridLayer into parity with other aggregation layers (i.e. HexagonLayer and GridLayer).

Experimental Layers

A number of experimental deck.gl layers are published in a new module @deck.gl/experimental-layers. Be aware that use of these layers come with caveats and are mainly intended for early adopters. Please refer to roadmap for more information.

Test Utilities

deck.gl now provides a suite of test utilities that make it easy to test both layers and applications. The utilities support visual regression testing against "golden" images, as well as utilities for traditional unit testing of layers. The utilities come pre-integrated with tools that help automate the running of browser based render tests from the console. To start using the utilities, install the new (@deck.gl/test-utils) module.

Dist Size Reduction

Work on bundle size reduction continues. In this release, the focus has been on leveraging the tree-shaking abilities of the Babel 7 and Webpack 4 combination. In addition, new article about Application Bundling and Tree Shaking has been added to the docs.

Shader Modules

project32 (New)

Unified 32/64-bit projection - A new common API for projection is implemented in both the project64 shader module and a new project32 shader module allowing the same vertex shader can be used for both 32-bit and 64-bit projection. This simplifies adding fp64 support to layers and reduces bundle size. See docs for more details.

v5.2.0-beta.2

12 Apr 03:28
Compare
Choose a tag to compare
v5.2.0-beta.2 Pre-release
Pre-release
  • Support Observable (#1690)
  • default width and height props (#1688)
  • fix plot example in website (#1685)

v5.2.0-beta.1

11 Apr 23:10
Compare
Choose a tag to compare
v5.2.0-beta.1 Pre-release
Pre-release
  • format changelog
  • Move "fragile" carto pure JS example to wip folder (#1674)
  • update whats new (#1682)
  • Clean up npm scripts (#1657)
  • replace deck.gl-layers with @deck.gl/experimental-layers (#1681)
  • Support non-monospace fonts in TextLayer (#1680)
  • use fetch instead of d3-request/json in examples (#1639)
  • add text-layer screenshot to what's new (#1678)
  • Publish standalone bundle with the main package (#1671)
  • Clean up cell layers code (#1675)
  • regenerate font atlas when fontFamily changed (#1669)
  • Expose MapController class and enable it to be used with Deck.controller prop (#1666)
  • ignore standalone module for now (#1670)
  • Fix auto resize and controller (#1656)
  • What's new update (#1667)
  • fix website dependencies (#1665)
  • fix example tests (#1644)
  • add linter to ci test (#1664)
  • fix bootstrap (#1663)
  • fix(docs): wdith to width typo (#1658)
  • Add TextLayer demo (#1646)
  • Module split PR1 (#1651)
  • Deck Component: auto resize handling (#1389)

v5.1.4

23 Mar 20:22
Compare
Choose a tag to compare

March 23, 2018

  • fix memory leak by deleting unused models (#1561)

v5.1.3

19 Mar 23:28
Compare
Choose a tag to compare
  • fix memory leak via oldProps (#1549)

v5.1.2

13 Mar 23:49
Compare
Choose a tag to compare
  • Add alpha for minColor to fix test (#1494)
  • Fix bug in getMaxCount (#1539)
  • Fix max count issue in bin sorter (#1535)
  • Add validation to geojson layer (#1442)

v5.1.1

02 Mar 02:08
Compare
Choose a tag to compare
  • do not pick when dragging (#1475)
  • [website] redirect to new blog (#1480)
  • [Website] Update documentation hierarchy (#1483)
  • [Website] Render nested categories in side bar (#1482)
  • fix plot demo on website (#1472)
  • fix link rewrite in website (#1469)
  • Update docs for layer transitions.
  • Change default 'extruded' to be 'false' in hexagon-layer.md (#1463)
  • Fix wrong image links in website (#1462)
  • update yarn lock

v5.1.0

15 Feb 23:57
Compare
Choose a tag to compare

Release date: Feb 15, 2018

Layer Transitions

JSX Layers

Layer Improvements

Layer Transitions

Many layers now support smooth visual transitions of e.g. positions and colors of layer elements, animating the update of the layers element to match a new data set. The animations are done on the GPU and can thus support very large number of elements. Use the new transitions prop on the Layer class to specify things like transition duration, easing function and callbacks.

Transitions are only supported on WebGL2-capable browsers such as Chrome and Firefox. The transitions prop will simply be ignored on WebGL1 browsers.

React Improvements

Use JSX to render deck.gl Layers

It is now possible to use JSX syntax to create (or "render") deck.gl layers. Many React users feel that this results in a more natural coding style.

  <DeckGL {...viewport}>
    <LineLayer data={data} />
  <DeckGL />

There are limitations (deck.gl layers are not React components), for more information see Using deck.gl with React.

v5.0.4

08 Feb 22:26
Compare
Choose a tag to compare
  • hexagon layer always rerender (#1384)
  • Fix crash during pickVisibleObjects (#1365)