Skip to content

Commit 01d819d

Browse files
v8.5 what's new and upgrade guide (visgl#5952)
1 parent f035859 commit 01d819d

File tree

4 files changed

+71
-52
lines changed

4 files changed

+71
-52
lines changed

docs/api-reference/geo-layers/tile-3d-layer.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ The Tile3DLayer renders the following sublayers based on tile [format](https://g
215215

216216
Follow [CompositeLayer](/docs/api-reference/core/composite-layer.md#_subLayerProp) and example in this layer doc to see how to override sub layer props.
217217

218+
## Remarks
219+
220+
- The `Tile3DLayer` can be rendered in multiple views. A tile is loaded if it is required by any of the viewports, and shared across all views via a single cache system.
221+
218222
## Source
219223

220224
[modules/geo-layers/src/tile-3d-layer](https://github.com/visgl/deck.gl/tree/master/modules/geo-layers/src/tile-3d-layer)

docs/developer-guide/views.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ const deck = new Deck({
307307
});
308308
```
309309

310-
Some layers, including `TileLayer`, `Tile3DLayer`, `HeatmapLayer` and `ScreenGridLayer`, perform expensive operations (data fetching/aggregation) on viewport change. Therefore, it is generally NOT recommended to render them into multiple views. If you do need to show e.g. tiled base map in multiple views, create one layer instance for each view and limit their rendering with `layerFilter`:
310+
Some layers, including `TileLayer`, `HeatmapLayer` and `ScreenGridLayer`, perform expensive operations (data fetching/aggregation) on viewport change. Therefore, it is generally NOT recommended to render them into multiple views. If you do need to show e.g. tiled base map in multiple views, create one layer instance for each view and limit their rendering with `layerFilter`:
311311

312312
```js
313313
const deck = new Deck({
@@ -329,6 +329,8 @@ const deck = new Deck({
329329
});
330330
```
331331

332+
Starting with v8.5, `Tile3DLayer` supports rendering in multiple views with a single tile cache.
333+
332334

333335
### Picking in Multiple Views
334336

docs/upgrade-guide.md

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,38 @@ The module entry point is now only lightly transpiled for the most commonly used
88

99
### Layers
1010

11+
#### Breaking changes
12+
1113
- A bug is fixed in projecting sizes in billboard mode. Pixel sizes now match their CSS counterparts. This change affects the following layers when used with a `MapView`:
1214
+ `ArcLayer`, `LineLayer` and `PointCloudLayer`
1315
+ `IconLayer` and `TextLayer` with the default `billboard` prop
1416
+ `PathLayer` with `billboard: true`
1517
After upgrading to v8.5, in order to maintain the same appearance, you need to multiply `2/3` to the objects' width/size. This can be done by either changing the accessor (`getWidth`/`getSize`) or the scaling prop (`sizeScale`/`widthScale`).
16-
- `TextLayer`'s `backgroundColor` prop is deprecated. Use `background: true` and `getBackgroundColor` instead.
1718
- `TextLayer`'s default `fontSettings` have changed. When using `sdf`, the default `buffer` is now `4` and the default `radius` is now `12`.
18-
- `PathLayer`'s `rounded` prop is deprecated, replaced by two separate flags `jointRounded` and `capRounded`.
1919
- `GeoJsonLayer`'s `lineJointRounded` prop now only controls line joints. To use rounded line caps, set `lineCapRounded` to `true`.
2020
- Dashed lines via `PathStyleExtension` now draw rounded dash caps if `capRounded` is `true`.
21-
- `@deck.gl/geo-layers` now requires `@deck.gl/extensions`, due to `ClipExtension` dependency.
22-
- `HeatmapLayer`'s `colorDomain` prop has redefined the unit of its values. See updated layer documentation for details.
23-
- `MVTLayer`'s `binary` prop is now set to `true` by default.
24-
- `CartoBQTilerLayer` will be deprecated in 8.6. Use `CartoLayer` instead with `type` set to `MAP_TYPES.TILESET`.
25-
- `CartoSQLLayer` will be deprecated in 8.6. Use `CartoLayer` instead with `type` set to `MAP_TYPES.QUERY`.
26-
- `GeoJsonLayer`'s `getRadius` props is deprecated, replaced by `getPointRadius`.
27-
- It is recommended to use `zoomOffset` in the `TileLayer` when trying to affect the `zoom` resolution at which tiles are fetched.
28-
- `MVTLayer` and `TerrainLayer`'s default loaders no longer support parsing on the main thread. This is the same behavior as before, just dropping unused code from the bundle. Should you need to use the layers in an environment where web worker is not available, or debug the loaders, you can supply the full loader as such:
29-
30-
```js
31-
import {MVTLoader} from '@loaders.gl/mvt';
32-
new MVTLayer({
33-
loaders: [MVTLoader],
34-
loadOptions: {worker: false}
35-
});
36-
```
37-
38-
```js
39-
import {TerrainLoader} from '@loaders.gl/terrain';
40-
new TerrainLayer({
41-
loaders: [TerrainLoader],
42-
loadOptions: {worker: false}
43-
});
44-
```
21+
- `@deck.gl/geo-layers` now depends on `@deck.gl/extensions`.
22+
- `HeatmapLayer`'s `colorDomain` prop has redefined the unit of its values. See updated [layer documentation](/docs/api-reference/aggregation-layers/heatmap-layer.md) for details.
23+
- `MVTLayer`'s `binary` prop is now set to `true` by default to take advantage of the performance boost.
24+
- `TileLayer` no longer uses `tileSize` to offset zoom in non-geospatial views. It is recommended to use the new `zoomOffset` prop to affect the `zoom` resolution at which tiles are fetched.
25+
- `MVTLayer` and `TerrainLayer`'s default loaders no longer support parsing on the main thread. This does not change the layers' default behavior, just reduces the bundle size by dropping unused code. Should you need to use the layers in an environment where web worker is not available, or debug the loaders, follow the examples in [loaders and workers](/docs/developer-guide/loading-data.md#loaders-and-web-workers).
4526
- `TerrainLayer`'s `workerUrl` prop is removed, use `loadOptions.terrain.workerUrl` instead.
4627

28+
#### Deprecations
29+
30+
- `TextLayer`'s `backgroundColor` prop is deprecated. Use `background: true` and `getBackgroundColor` instead.
31+
- `PathLayer`'s `rounded` prop is deprecated, replaced by two separate flags `jointRounded` and `capRounded`.
32+
- `GeoJsonLayer`'s `getRadius` props is deprecated, replaced by `getPointRadius`.
33+
- `CartoBQTilerLayer` is deprecated and will be removed in 8.6. Use `CartoLayer` instead with `type` set to `MAP_TYPES.TILESET`.
34+
- `CartoSQLLayer` is deprecated and will be removed in 8.6. Use `CartoLayer` instead with `type` set to `MAP_TYPES.QUERY`.
4735

4836
### onError Callback
4937

5038
`Deck`'s default `onError` callback is changed to `console.error`. Explicitly setting `onError` to `null` now silently ignores all errors, instead of logging them to console.
5139

40+
### loaders.gl v3.0
41+
42+
deck.gl now depends on `@loaders.gl/core@^3.0.0`. It is strongly recommended that you upgrade all loaders.gl dependencies to v3 as v2.x loaders are not tested with the v3.0 core. Visit loaders.gl's [upgrade guide](https://loaders.gl/docs/upgrade-guide) for instructions on each loader module.
5243

5344
### OrbitView
5445

docs/whats-new.md

Lines changed: 47 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
This page contains highlights of each deck.gl release. Also check our [vis.gl blog](https://medium.com/vis-gl) for news about new releases and features in deck.gl.
44

5-
## deck.gl v8.5 (In development)
5+
## deck.gl v8.5
66

7-
Release date: TBD
7+
Release date: July 2021 (beta available)
88

99

1010
<table style="border: 0;" align="center">
@@ -18,7 +18,9 @@ Release date: TBD
1818
</tbody>
1919
</table>
2020

21-
### MVTLayer performance
21+
### Layer Improvements
22+
23+
#### MVTLayer
2224

2325
Mapbox Vector Tiles parsing throughput is now 2-3x faster, due to MVT tiles being parsed directly into binary attributes rather than GeoJSON, and additional work (including [triangulation](https://github.com/visgl/loaders.gl/blob/master/docs/whats-new.md#v30-in-development)) being performed on worker threads. Speed comparison on some example data sets (MVT tiles parsed per second):
2426

@@ -31,7 +33,7 @@ Mapbox Vector Tiles parsing throughput is now 2-3x faster, due to MVT tiles bein
3133

3234
_Benchmarks ran using scripts on a 2012 MacBook Pro, 2.3 GHz Intel Core i7, 8 GB, measuring parsing time of MVTLoader only (network time and rendering is not included)_
3335

34-
### GeoJsonLayer point types
36+
#### GeoJsonLayer
3537

3638
GeoJSONLayer now supports rendering point features as icons and/or text labels in addition to circles. Use the new `pointType` prop:
3739

@@ -46,23 +48,10 @@ new GeoJsonLayer({
4648

4749
For a full list of new props, visit the updated [documentation](/docs/api-reference/layers/geojson-layer.md).
4850

49-
### Default transpilation and bundle size
50-
51-
The NPM distribution has dropped IE 11 support in exchange for an almost 20% reduction in size.
52-
53-
| Entry point | 8.5 Bundle (gzipped) | 8.4 Bundle (gzipped) | Comments |
54-
| --- | --- | --- | --- |
55-
| module (dist/esm) | 398 KB (115 KB) | 485 KB (128 KB) | Transpiled, tree-shaking enabled |
56-
| main (dist/es5) | 686 KB (178 KB) | 812 KB (197 KB) | Transpiled, no tree-shaking |
57-
58-
*Measured as the footprint of @deck.gl/core, bundled and minified with Webpack 4*
59-
60-
To support older or less common browsers, make sure that `node_modules` is included in your application's babel settings.
61-
62-
For backward compatibility, the pre-built bundle (`dist.min.js`) is not affected by this change.
6351

52+
#### TextLayer
6453

65-
### TextLayer
54+
The layer now supports automatically detecting the characters used in the data. Set `characterSet: 'auto'` to enable this feature.
6655

6756
New props are added for more flexible styling of the texts:
6857

@@ -74,18 +63,51 @@ New props are added for more flexible styling of the texts:
7463
* `getBorderWidth`
7564
* `getBorderColor`
7665

77-
The layer now supports automatically detecting the characters used in the data. Set `characterSet: 'auto'` to enable this feature.
78-
7966
See [documentation](/docs/api-reference/layers/text-layer.md) for details.
8067

81-
### React
8268

83-
The `DeckGL` React component is rewritten using functional component and hooks.
69+
#### Tile3DLayer
70+
71+
Tile3DLayer can now be rendered in multiple views. Previously if you use multiple views it was required to create one Tile3DLayer for each view. Using a single layer is more efficient by sharing the tile cache.
8472

85-
### Other layer improvements
73+
The layer now takes full advantage of new features in I3S 1.7 tile sets, including:
74+
+ Picking individual objects inside a tile
75+
+ Page nodes (improved performance)
76+
+ Draco compressed meshes (improved performance)
77+
+ Compressed textures (improved performance)
78+
+ PBR materials
79+
+ Vertex colors
80+
+ UVRegions
8681

82+
83+
#### Other layer improvements
84+
85+
- `ScatterplotLayer` adds `billboard` mode
86+
- `TripLayer` adds `fadeTrail` mode
8787
- `PathLayer` now supports controlling `jointRounded` and `capRounded` separately. Dashed lines via `PathStyleExtension` also respects the cap type.
88-
- `PolygonLayer` and `GeoJsonLayer`: `autoHighlight` now highlights both the outline and the fill of the hovered polygon, instead of either the outline or the fill.
88+
- `PolygonLayer` and `GeoJsonLayer`: `autoHighlight` now highlight both the outline and the fill of the hovered polygon, instead of either the outline or the fill.
89+
- `HeatmapLayer` now correctly renders `aggregation: 'MEAN'` with user-supplied `colorDomain`.
90+
91+
92+
### Default transpilation and bundle size
93+
94+
The NPM distribution has dropped IE 11 support in exchange for an almost 20% reduction in size.
95+
96+
| Entry point | 8.5 Bundle (gzipped) | 8.4 Bundle (gzipped) | Comments |
97+
| --- | --- | --- | --- |
98+
| module (dist/esm) | 398 KB (115 KB) | 485 KB (128 KB) | Transpiled, tree-shaking enabled |
99+
| main (dist/es5) | 686 KB (178 KB) | 812 KB (197 KB) | Transpiled, no tree-shaking |
100+
101+
*Measured as the footprint of @deck.gl/core, bundled and minified with Webpack 4*
102+
103+
To support older or less common browsers, make sure that `node_modules` is included in your application's babel settings.
104+
105+
For backward compatibility, the pre-built bundle (`dist.min.js`) is not affected by this change.
106+
107+
108+
### @deck.gl/react
109+
110+
The `DeckGL` React component is rewritten using functional component and hooks.
89111

90112

91113
### @deck.gl/carto

0 commit comments

Comments
 (0)