@deck.gl/mapbox 8.8.19 → 8.8.21
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/dist.dev.js +667 -22
- package/dist/es5/deck-utils.js +32 -16
- package/dist/es5/deck-utils.js.map +1 -1
- package/dist/es5/mapbox-overlay.js +8 -4
- package/dist/es5/mapbox-overlay.js.map +1 -1
- package/dist/esm/deck-utils.js +23 -16
- package/dist/esm/deck-utils.js.map +1 -1
- package/dist/esm/mapbox-overlay.js +8 -4
- package/dist/esm/mapbox-overlay.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/deck-utils.ts +30 -15
- package/src/mapbox-overlay.ts +10 -5
- package/typed/deck-utils.d.ts +2 -1
- package/typed/deck-utils.d.ts.map +1 -1
- package/typed/mapbox-overlay.d.ts.map +1 -1
package/src/deck-utils.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type {DeckProps, MapViewState, Layer} from '@deck.gl/core';
|
|
|
3
3
|
import type MapboxLayer from './mapbox-layer';
|
|
4
4
|
import type {Map} from 'mapbox-gl';
|
|
5
5
|
|
|
6
|
+
import GL from '@luma.gl/constants';
|
|
7
|
+
|
|
6
8
|
type UserData = {
|
|
7
9
|
isExternal: boolean;
|
|
8
10
|
currentViewport?: WebMercatorViewport | null;
|
|
@@ -24,10 +26,11 @@ export function getDeckInstance({
|
|
|
24
26
|
return map.__deck;
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
// Only initialize certain props once per context
|
|
27
30
|
const customRender = deck?.props._customRender;
|
|
28
31
|
|
|
29
|
-
const deckProps
|
|
30
|
-
|
|
32
|
+
const deckProps = getInterleavedProps({
|
|
33
|
+
...deck?.props,
|
|
31
34
|
_customRender: () => {
|
|
32
35
|
map.triggerRepaint();
|
|
33
36
|
// customRender may be subscribed by DeckGL React component to update child props
|
|
@@ -35,19 +38,8 @@ export function getDeckInstance({
|
|
|
35
38
|
// Hack - do not pass a redraw reason here to prevent the React component from clearing the context
|
|
36
39
|
// Rerender will be triggered by MapboxLayer's render()
|
|
37
40
|
customRender?.('');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
parameters: {
|
|
41
|
-
depthMask: true,
|
|
42
|
-
depthTest: true,
|
|
43
|
-
blend: true,
|
|
44
|
-
blendFunc: [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA],
|
|
45
|
-
polygonOffsetFill: true,
|
|
46
|
-
depthFunc: gl.LEQUAL,
|
|
47
|
-
blendEquation: gl.FUNC_ADD
|
|
48
|
-
},
|
|
49
|
-
views: (deck && deck.props.views) || [new MapView({id: 'mapbox'})]
|
|
50
|
-
};
|
|
41
|
+
}
|
|
42
|
+
});
|
|
51
43
|
|
|
52
44
|
let deckInstance: Deck;
|
|
53
45
|
|
|
@@ -88,6 +80,29 @@ export function getDeckInstance({
|
|
|
88
80
|
return deckInstance;
|
|
89
81
|
}
|
|
90
82
|
|
|
83
|
+
export function getInterleavedProps(currProps: DeckProps) {
|
|
84
|
+
const useDevicePixels = 'useDevicePixels' in currProps ? currProps.useDevicePixels : true;
|
|
85
|
+
|
|
86
|
+
const nextProps: DeckProps = {
|
|
87
|
+
...currProps,
|
|
88
|
+
useDevicePixels,
|
|
89
|
+
// TODO: import these defaults from a single source of truth
|
|
90
|
+
parameters: {
|
|
91
|
+
depthMask: true,
|
|
92
|
+
depthTest: true,
|
|
93
|
+
blend: true,
|
|
94
|
+
blendFunc: [GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA, GL.ONE, GL.ONE_MINUS_SRC_ALPHA],
|
|
95
|
+
polygonOffsetFill: true,
|
|
96
|
+
depthFunc: GL.LEQUAL,
|
|
97
|
+
blendEquation: GL.FUNC_ADD,
|
|
98
|
+
...currProps.parameters
|
|
99
|
+
},
|
|
100
|
+
views: currProps.views || [new MapView({id: 'mapbox'})]
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
return nextProps;
|
|
104
|
+
}
|
|
105
|
+
|
|
91
106
|
export function addLayer(deck: Deck, layer: MapboxLayer<any>): void {
|
|
92
107
|
(deck.userData as UserData).mapboxLayers.add(layer);
|
|
93
108
|
updateLayers(deck);
|
package/src/mapbox-overlay.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {Deck, assert} from '@deck.gl/core';
|
|
2
|
-
import {getViewState} from './deck-utils';
|
|
2
|
+
import {getViewState, getDeckInstance, getInterleavedProps} from './deck-utils';
|
|
3
3
|
|
|
4
4
|
import type {Map, IControl, MapMouseEvent} from 'mapbox-gl';
|
|
5
5
|
import type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';
|
|
@@ -50,7 +50,7 @@ export default class MapboxOverlay implements IControl {
|
|
|
50
50
|
Object.assign(this._props, props);
|
|
51
51
|
|
|
52
52
|
if (this._deck) {
|
|
53
|
-
this._deck.setProps(this._props);
|
|
53
|
+
this._deck.setProps(this._interleaved ? getInterleavedProps(this._props) : this._props);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -89,10 +89,15 @@ export default class MapboxOverlay implements IControl {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
private _onAddInterleaved(map: Map): HTMLDivElement {
|
|
92
|
-
this._deck =
|
|
93
|
-
|
|
92
|
+
this._deck = getDeckInstance({
|
|
93
|
+
map,
|
|
94
94
|
// @ts-ignore non-public map property
|
|
95
|
-
gl: map.painter.context.gl
|
|
95
|
+
gl: map.painter.context.gl,
|
|
96
|
+
deck: new Deck({
|
|
97
|
+
...this._props,
|
|
98
|
+
// @ts-ignore non-public map property
|
|
99
|
+
gl: map.painter.context.gl
|
|
100
|
+
})
|
|
96
101
|
});
|
|
97
102
|
|
|
98
103
|
map.on('styledata', this._handleStyleChange);
|
package/typed/deck-utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Deck } from '@deck.gl/core/typed';
|
|
2
|
-
import type { MapViewState } from '@deck.gl/core/typed';
|
|
2
|
+
import type { DeckProps, MapViewState } from '@deck.gl/core/typed';
|
|
3
3
|
import type MapboxLayer from './mapbox-layer';
|
|
4
4
|
import type { Map } from 'mapbox-gl';
|
|
5
5
|
export declare function getDeckInstance({ map, gl, deck }: {
|
|
@@ -9,6 +9,7 @@ export declare function getDeckInstance({ map, gl, deck }: {
|
|
|
9
9
|
gl: WebGLRenderingContext;
|
|
10
10
|
deck?: Deck;
|
|
11
11
|
}): Deck;
|
|
12
|
+
export declare function getInterleavedProps(currProps: DeckProps): DeckProps;
|
|
12
13
|
export declare function addLayer(deck: Deck, layer: MapboxLayer<any>): void;
|
|
13
14
|
export declare function removeLayer(deck: Deck, layer: MapboxLayer<any>): void;
|
|
14
15
|
export declare function updateLayer(deck: Deck, layer: MapboxLayer<any>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deck-utils.d.ts","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAoD,MAAM,eAAe,CAAC;AACtF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"deck-utils.d.ts","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAoD,MAAM,eAAe,CAAC;AACtF,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAQ,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AAWnC,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,EAAE,EACF,IAAI,EACL,EAAE;IACD,GAAG,EAAE,GAAG,GAAG;QAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;KAAC,CAAC;IAClC,EAAE,EAAE,qBAAqB,CAAC;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,GAAG,IAAI,CA0DP;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,aAqBvD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAGlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAGrE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAErE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAqB7E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,GAAG;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAaA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapbox-overlay.d.ts","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAI7C,oBAAY,kBAAkB,GAAG,IAAI,CACnC,SAAS,EACP,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,YAAY,CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ;IACpD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,IAAI,CAAC,CAAM;IACnB,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAU;gBAG5B,KAAK,EAAE,kBAAkB,GAAG;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;IAOH,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAYzC,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc;IAK/B,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"mapbox-overlay.d.ts","sourceRoot":"","sources":["../src/mapbox-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAI7C,oBAAY,kBAAkB,GAAG,IAAI,CACnC,SAAS,EACP,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,YAAY,CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ;IACpD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,IAAI,CAAC,CAAM;IACnB,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAU;gBAG5B,KAAK,EAAE,kBAAkB,GAAG;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;IAOH,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAYzC,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc;IAK/B,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;IAkBzB,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAiBhB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,oBAAoB;IAK5B,kBAAkB;IAIlB,0CAA0C;IAC1C,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAKrF,mDAAmD;IACnD,mBAAmB,CACjB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAK1C,2CAA2C;IAC3C,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAKxF,iDAAiD;IACjD,QAAQ;IAMR,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,iBAAiB,CA4CvB;CACH"}
|