@deck.gl/maplibre 9.4.0-beta.1

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/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright Vis.gl contributors.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # @deck.gl/maplibre
2
+
3
+ Use deck.gl layers with MapLibre GL JS v4.5.1, v5, and v6.
4
+
5
+ See [deck.gl](https://deck.gl/docs/api-reference/maplibre/overview) for documentation.
@@ -0,0 +1,16 @@
1
+ export type MapLibreRenderParameters = {
2
+ farZ: number;
3
+ nearZ: number;
4
+ };
5
+ type CompatibleMapLibreMap = {
6
+ getCenterElevation?: () => number;
7
+ getCameraTargetElevation?: () => number;
8
+ getProjection?: () => {
9
+ type?: unknown;
10
+ } | undefined;
11
+ };
12
+ export declare function getMapLibreElevation(map: CompatibleMapLibreMap): number | undefined;
13
+ export declare function getMapLibreProjection(map: CompatibleMapLibreMap): 'mercator' | 'globe';
14
+ export declare function getMapLibreRenderParameters(parametersOrMatrix: unknown, legacyParameters?: unknown): MapLibreRenderParameters;
15
+ export {};
16
+ //# sourceMappingURL=compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,MAAM,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAKnF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,UAAU,GAAG,OAAO,CActF;AAED,wBAAgB,2BAA2B,CACzC,kBAAkB,EAAE,OAAO,EAC3B,gBAAgB,CAAC,EAAE,OAAO,GACzB,wBAAwB,CAQ1B"}
@@ -0,0 +1,42 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export function getMapLibreElevation(map) {
5
+ if (map.getCenterElevation) {
6
+ return map.getCenterElevation();
7
+ }
8
+ return map.getCameraTargetElevation?.();
9
+ }
10
+ export function getMapLibreProjection(map) {
11
+ let type = 'mercator';
12
+ try {
13
+ type = map.getProjection?.()?.type || 'mercator';
14
+ }
15
+ catch {
16
+ // getProjection throws before a style is assigned
17
+ }
18
+ if (type === 'globe') {
19
+ return 'globe';
20
+ }
21
+ if (type !== 'mercator') {
22
+ throw new Error(`Unsupported MapLibre projection: ${String(type)}`);
23
+ }
24
+ return 'mercator';
25
+ }
26
+ export function getMapLibreRenderParameters(parametersOrMatrix, legacyParameters) {
27
+ if (isMapLibreRenderParameters(parametersOrMatrix)) {
28
+ return parametersOrMatrix;
29
+ }
30
+ if (isMapLibreRenderParameters(legacyParameters)) {
31
+ return legacyParameters;
32
+ }
33
+ throw new Error('MapLibreOverlay interleaved rendering requires MapLibre GL JS 4.5.1 or later');
34
+ }
35
+ function isMapLibreRenderParameters(value) {
36
+ if (!value || typeof value !== 'object') {
37
+ return false;
38
+ }
39
+ const parameters = value;
40
+ return Number.isFinite(parameters.nearZ) && Number.isFinite(parameters.farZ);
41
+ }
42
+ //# sourceMappingURL=compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAapC,MAAM,UAAU,oBAAoB,CAAC,GAA0B;IAC7D,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC,wBAAwB,EAAE,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAA0B;IAC9D,IAAI,IAAI,GAAY,UAAU,CAAC;IAC/B,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,kBAA2B,EAC3B,gBAA0B;IAE1B,IAAI,0BAA0B,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,KAA0C,CAAC;IAC9D,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Deck, MapView, _GlobeView as GlobeView } from '@deck.gl/core';
2
+ import { type MapLibreRenderParameters } from "./compatibility.js";
3
+ import type { DeckProps, MapViewState } from '@deck.gl/core';
4
+ import type { Parameters } from '@luma.gl/core';
5
+ import type { Map as MapLibreMap } from 'maplibre-gl';
6
+ import type MapLibreLayerGroup from "./layer-group.js";
7
+ export declare const MAPLIBRE_VIEW_ID = "maplibre";
8
+ export declare function createMapLibreInterleavedDeck(map: MapLibreMap, props: DeckProps): Deck;
9
+ export declare function getMapLibreDefaultParameters(_map: MapLibreMap, interleaved: boolean): Parameters;
10
+ export declare function getMapLibreDefaultView(map: MapLibreMap): GlobeView | MapView;
11
+ export declare function getMapLibreViewState(map: MapLibreMap): MapViewState & {
12
+ repeat: boolean;
13
+ padding: {
14
+ top: number;
15
+ bottom: number;
16
+ left: number;
17
+ right: number;
18
+ };
19
+ };
20
+ export declare function createMapLibreDeckInstance(map: MapLibreMap, deck: Deck): Deck;
21
+ export declare function getMapLibreDeckInstance(map: MapLibreMap): Deck | undefined;
22
+ export declare function removeMapLibreDeckInstance(map: MapLibreMap): void;
23
+ export declare function drawMapLibreLayerGroup(deck: Deck, map: MapLibreMap, group: MapLibreLayerGroup, renderParameters: MapLibreRenderParameters): void;
24
+ //# sourceMappingURL=deck-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-utils.d.ts","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS,EAAsB,MAAM,eAAe,CAAC;AAE1F,OAAO,EAGL,KAAK,wBAAwB,EAC9B,2BAAwB;AAGzB,OAAO,KAAK,EAAC,SAAS,EAAS,YAAY,EAAW,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAC,GAAG,IAAI,WAAW,EAAC,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,kBAAkB,yBAAsB;AAGpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAe3C,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAsBtF;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,GAAG,UAAU,CAehG;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAI5E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,GAAG;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;CACrE,CA2BA;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAuD7E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAUjE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,kBAAkB,EACzB,gBAAgB,EAAE,wBAAwB,GACzC,IAAI,CA8BN"}
@@ -0,0 +1,238 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { Deck, MapView, _GlobeView as GlobeView, _flatten as flatten } from '@deck.gl/core';
5
+ import { getMapLibreElevation, getMapLibreProjection } from "./compatibility.js";
6
+ import { getMapLibreLayerGroupId } from "./layer-utils.js";
7
+ export const MAPLIBRE_VIEW_ID = 'maplibre';
8
+ const MAPLIBRE_DECK_STATES = new WeakMap();
9
+ export function createMapLibreInterleavedDeck(map, props) {
10
+ if (MAPLIBRE_DECK_STATES.has(map)) {
11
+ throw new Error('MapLibreOverlay supports one interleaved overlay per map');
12
+ }
13
+ const gl = map.getCanvas().getContext('webgl2');
14
+ if (!gl) {
15
+ throw new Error('MapLibreOverlay interleaved rendering requires WebGL2.');
16
+ }
17
+ const { device: _, ...deckProps } = props;
18
+ const deck = new Deck({ ...deckProps, gl });
19
+ try {
20
+ return createMapLibreDeckInstance(map, deck);
21
+ }
22
+ catch (error) {
23
+ if (getMapLibreDeckInstance(map) === deck) {
24
+ removeMapLibreDeckInstance(map);
25
+ }
26
+ else {
27
+ deck.finalize();
28
+ }
29
+ throw error;
30
+ }
31
+ }
32
+ export function getMapLibreDefaultParameters(_map, interleaved) {
33
+ return interleaved
34
+ ? {
35
+ depthWriteEnabled: true,
36
+ depthCompare: 'less-equal',
37
+ depthBias: 0,
38
+ blend: true,
39
+ blendColorSrcFactor: 'src-alpha',
40
+ blendColorDstFactor: 'one-minus-src-alpha',
41
+ blendAlphaSrcFactor: 'one',
42
+ blendAlphaDstFactor: 'one-minus-src-alpha',
43
+ blendColorOperation: 'add',
44
+ blendAlphaOperation: 'add'
45
+ }
46
+ : {};
47
+ }
48
+ export function getMapLibreDefaultView(map) {
49
+ return getMapLibreProjection(map) === 'globe'
50
+ ? new GlobeView({ id: MAPLIBRE_VIEW_ID })
51
+ : new MapView({ id: MAPLIBRE_VIEW_ID });
52
+ }
53
+ export function getMapLibreViewState(map) {
54
+ const { lng, lat } = map.getCenter();
55
+ const padding = map.getPadding();
56
+ const viewState = {
57
+ longitude: ((lng + 540) % 360) - 180,
58
+ latitude: lat,
59
+ zoom: map.getZoom(),
60
+ bearing: map.getBearing(),
61
+ pitch: map.getPitch(),
62
+ padding: {
63
+ top: padding.top ?? 0,
64
+ bottom: padding.bottom ?? 0,
65
+ left: padding.left ?? 0,
66
+ right: padding.right ?? 0
67
+ },
68
+ repeat: map.getRenderWorldCopies()
69
+ };
70
+ const elevation = getMapLibreElevation(map);
71
+ if (typeof elevation === 'number' && Number.isFinite(elevation)) {
72
+ viewState.position = [0, 0, elevation];
73
+ }
74
+ return viewState;
75
+ }
76
+ export function createMapLibreDeckInstance(map, deck) {
77
+ const existingState = MAPLIBRE_DECK_STATES.get(map);
78
+ if (existingState) {
79
+ throw new Error('MapLibreOverlay supports one interleaved overlay per map');
80
+ }
81
+ const customRender = deck.props._customRender;
82
+ const onLoad = deck.props.onLoad;
83
+ const state = {
84
+ deck,
85
+ watchingMove: false,
86
+ moveListener: () => {
87
+ if (deck.isInitialized) {
88
+ onMapLibreMove(deck, map);
89
+ }
90
+ else {
91
+ stopWatchingMove(map, state);
92
+ }
93
+ },
94
+ renderListener: () => {
95
+ if (deck.isInitialized) {
96
+ afterMapLibreRender(deck, map);
97
+ }
98
+ }
99
+ };
100
+ MAPLIBRE_DECK_STATES.set(map, state);
101
+ const deckProps = {
102
+ ...deck.props,
103
+ _customRender: () => {
104
+ map.triggerRepaint();
105
+ customRender?.('');
106
+ }
107
+ };
108
+ deckProps.views || (deckProps.views = getMapLibreDefaultView(map));
109
+ Object.assign(deckProps, {
110
+ width: null,
111
+ height: null,
112
+ touchAction: 'unset',
113
+ viewState: getMapLibreViewState(map)
114
+ });
115
+ if (deck.isInitialized) {
116
+ startWatchingMove(map, state);
117
+ }
118
+ else {
119
+ deckProps.onLoad = () => {
120
+ onLoad?.();
121
+ if (MAPLIBRE_DECK_STATES.get(map) === state) {
122
+ startWatchingMove(map, state);
123
+ }
124
+ };
125
+ }
126
+ deck.setProps(deckProps);
127
+ map.on('render', state.renderListener);
128
+ return deck;
129
+ }
130
+ export function getMapLibreDeckInstance(map) {
131
+ return MAPLIBRE_DECK_STATES.get(map)?.deck;
132
+ }
133
+ export function removeMapLibreDeckInstance(map) {
134
+ const state = MAPLIBRE_DECK_STATES.get(map);
135
+ if (!state) {
136
+ return;
137
+ }
138
+ stopWatchingMove(map, state);
139
+ map.off('render', state.renderListener);
140
+ state.deck.finalize();
141
+ MAPLIBRE_DECK_STATES.delete(map);
142
+ }
143
+ export function drawMapLibreLayerGroup(deck, map, group, renderParameters) {
144
+ if (!deck.isInitialized) {
145
+ return;
146
+ }
147
+ let { currentViewport } = deck.userData;
148
+ let clearStack = false;
149
+ if (!currentViewport) {
150
+ currentViewport = getMapLibreViewport(deck, map, renderParameters);
151
+ deck.userData.currentViewport = currentViewport;
152
+ clearStack = true;
153
+ }
154
+ if (!currentViewport) {
155
+ return;
156
+ }
157
+ deck._drawLayers('maplibre-repaint', {
158
+ viewports: [currentViewport],
159
+ layerFilter: params => {
160
+ if (deck.props.layerFilter && !deck.props.layerFilter(params)) {
161
+ return false;
162
+ }
163
+ const layer = params.layer;
164
+ return layer.props.beforeId === group.beforeId;
165
+ },
166
+ clearStack,
167
+ clearCanvas: false
168
+ });
169
+ }
170
+ function startWatchingMove(map, state) {
171
+ if (!state.watchingMove) {
172
+ state.watchingMove = true;
173
+ map.on('move', state.moveListener);
174
+ }
175
+ }
176
+ function stopWatchingMove(map, state) {
177
+ if (state.watchingMove) {
178
+ state.watchingMove = false;
179
+ map.off('move', state.moveListener);
180
+ }
181
+ }
182
+ function getMapLibreViewport(deck, map, renderParameters) {
183
+ const viewState = getMapLibreViewState(map);
184
+ const view = (deck.getView(MAPLIBRE_VIEW_ID) || getMapLibreDefaultView(map));
185
+ if (renderParameters) {
186
+ view.props.nearZMultiplier = 0.2;
187
+ const height = map.getCanvas().clientHeight;
188
+ if (height > 0 &&
189
+ Number.isFinite(renderParameters.nearZ) &&
190
+ Number.isFinite(renderParameters.farZ)) {
191
+ viewState.nearZ = renderParameters.nearZ / height;
192
+ viewState.farZ = renderParameters.farZ / height;
193
+ }
194
+ }
195
+ return view.makeViewport({
196
+ width: deck.width,
197
+ height: deck.height,
198
+ viewState
199
+ });
200
+ }
201
+ function afterMapLibreRender(deck, map) {
202
+ const deckLayers = flatten(deck.props.layers, Boolean);
203
+ const hasNonMapLibreLayers = deckLayers.some(layer => layer && !map.getLayer(getMapLibreLayerGroupId(layer)));
204
+ let viewports = deck.getViewports();
205
+ const mapLibreViewportIndex = viewports.findIndex(viewport => viewport.id === MAPLIBRE_VIEW_ID);
206
+ const hasNonMapLibreViews = viewports.length > 1 || mapLibreViewportIndex < 0;
207
+ if (hasNonMapLibreLayers || hasNonMapLibreViews) {
208
+ if (mapLibreViewportIndex >= 0) {
209
+ viewports = viewports.slice();
210
+ const mapLibreViewport = getMapLibreViewport(deck, map);
211
+ if (mapLibreViewport) {
212
+ viewports[mapLibreViewportIndex] = mapLibreViewport;
213
+ }
214
+ else {
215
+ viewports.splice(mapLibreViewportIndex, 1);
216
+ }
217
+ }
218
+ deck._drawLayers('maplibre-repaint', {
219
+ viewports,
220
+ layerFilter: params => (!deck.props.layerFilter || deck.props.layerFilter(params)) &&
221
+ (params.viewport.id !== MAPLIBRE_VIEW_ID ||
222
+ !map.getLayer(getMapLibreLayerGroupId(params.layer))),
223
+ clearCanvas: false
224
+ });
225
+ }
226
+ else {
227
+ const device = deck.device;
228
+ const gl = device?.gl;
229
+ deck.props.onBeforeRender?.({ device, gl });
230
+ deck.props.onAfterRender?.({ device, gl });
231
+ }
232
+ deck.userData.currentViewport = null;
233
+ }
234
+ function onMapLibreMove(deck, map) {
235
+ deck.setProps({ viewState: getMapLibreViewState(map) });
236
+ deck.needsRedraw({ clearRedrawFlags: true });
237
+ }
238
+ //# sourceMappingURL=deck-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-utils.js","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { default as MapLibreOverlay } from "./overlay.js";
2
+ export type { MapLibreOverlayProps } from "./overlay.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,qBAAkB;AACrD,YAAY,EAAC,oBAAoB,EAAC,qBAAkB"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { default as MapLibreOverlay } from "./overlay.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,qBAAkB"}
@@ -0,0 +1,18 @@
1
+ import type { CustomLayerInterface, Map as MapLibreMap } from 'maplibre-gl';
2
+ export type MapLibreLayerGroupProps = {
3
+ id: string;
4
+ renderingMode?: '2d' | '3d';
5
+ beforeId?: string;
6
+ };
7
+ export default class MapLibreLayerGroup implements CustomLayerInterface {
8
+ readonly id: string;
9
+ readonly type: "custom";
10
+ readonly renderingMode: '2d' | '3d';
11
+ readonly beforeId?: string;
12
+ private map;
13
+ constructor(props: MapLibreLayerGroupProps);
14
+ onAdd(map: MapLibreMap): void;
15
+ onRemove(): void;
16
+ render(_gl: WebGLRenderingContext | WebGL2RenderingContext, parametersOrMatrix: unknown, legacyParameters?: unknown): void;
17
+ }
18
+ //# sourceMappingURL=layer-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-group.d.ts","sourceRoot":"","sources":["../src/layer-group.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,oBAAoB,EAAE,GAAG,IAAI,WAAW,EAAC,MAAM,aAAa,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,oBAAoB;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,GAAG,CAA4B;gBAE3B,KAAK,EAAE,uBAAuB;IAO1C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;IAIhB,MAAM,CACJ,GAAG,EAAE,qBAAqB,GAAG,sBAAsB,EACnD,kBAAkB,EAAE,OAAO,EAC3B,gBAAgB,CAAC,EAAE,OAAO,GACzB,IAAI;CAiBR"}
@@ -0,0 +1,33 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { assert } from '@deck.gl/core';
5
+ import { getMapLibreRenderParameters } from "./compatibility.js";
6
+ import { drawMapLibreLayerGroup, getMapLibreDeckInstance } from "./deck-utils.js";
7
+ export default class MapLibreLayerGroup {
8
+ constructor(props) {
9
+ this.type = 'custom';
10
+ this.map = null;
11
+ assert(props.id, 'id is required');
12
+ this.id = props.id;
13
+ this.renderingMode = props.renderingMode || '3d';
14
+ this.beforeId = props.beforeId;
15
+ }
16
+ onAdd(map) {
17
+ this.map = map;
18
+ }
19
+ onRemove() {
20
+ this.map = null;
21
+ }
22
+ render(_gl, parametersOrMatrix, legacyParameters) {
23
+ if (!this.map) {
24
+ return;
25
+ }
26
+ const deck = getMapLibreDeckInstance(this.map);
27
+ if (!deck) {
28
+ return;
29
+ }
30
+ drawMapLibreLayerGroup(deck, this.map, this, getMapLibreRenderParameters(parametersOrMatrix, legacyParameters));
31
+ }
32
+ }
33
+ //# sourceMappingURL=layer-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-group.js","sourceRoot":"","sources":["../src/layer-group.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,OAAO,EAAC,2BAA2B,EAAC,2BAAwB;AAC5D,OAAO,EAAC,sBAAsB,EAAE,uBAAuB,EAAC,wBAAqB;AAU7E,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAQrC,YAAY,KAA8B;QANjC,SAAI,GAAG,QAAiB,CAAC;QAI1B,QAAG,GAAuB,IAAI,CAAC;QAGrC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAgB;QACpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CACJ,GAAmD,EACnD,kBAA2B,EAC3B,gBAA0B;QAE1B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,sBAAsB,CACpB,IAAI,EACJ,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,2BAA2B,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAClE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { Layer } from '@deck.gl/core';
2
+ export type MapLibreLayerProps = {
3
+ beforeId?: string;
4
+ };
5
+ export declare const MAPLIBRE_LAST_LAYER_GROUP_ID = "deck-maplibre-layer-group-last";
6
+ export declare function getMapLibreLayerGroupId(layer: Layer<MapLibreLayerProps>): string;
7
+ //# sourceMappingURL=layer-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-utils.d.ts","sourceRoot":"","sources":["../src/layer-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAE7E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAIhF"}
@@ -0,0 +1,10 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export const MAPLIBRE_LAST_LAYER_GROUP_ID = 'deck-maplibre-layer-group-last';
5
+ export function getMapLibreLayerGroupId(layer) {
6
+ return layer.props.beforeId
7
+ ? `deck-maplibre-layer-group-before:${layer.props.beforeId}`
8
+ : MAPLIBRE_LAST_LAYER_GROUP_ID;
9
+ }
10
+ //# sourceMappingURL=layer-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-utils.js","sourceRoot":"","sources":["../src/layer-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAQpC,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAC;AAE7E,MAAM,UAAU,uBAAuB,CAAC,KAAgC;IACtE,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ;QACzB,CAAC,CAAC,oCAAoC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC5D,CAAC,CAAC,4BAA4B,CAAC;AACnC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Deck } from '@deck.gl/core';
2
+ import type { DeckProps } from '@deck.gl/core';
3
+ import type { ControlPosition, IControl, Map as MapLibreMap } from 'maplibre-gl';
4
+ /** Properties for MapLibreOverlay. */
5
+ export type MapLibreOverlayProps = Omit<DeckProps, 'width' | 'height' | 'gl' | 'parent' | 'canvas' | '_customRender' | 'viewState' | 'initialViewState' | 'controller'> & {
6
+ /**
7
+ * If true, deck.gl layers are inserted into MapLibre's layer stack and share its WebGL2 context.
8
+ * @default false
9
+ */
10
+ interleaved?: boolean;
11
+ };
12
+ /** Renders deck.gl layers over a MapLibre map and synchronizes with its camera. */
13
+ export default class MapLibreOverlay implements IControl {
14
+ private _props;
15
+ private _deck?;
16
+ private _map?;
17
+ private _container?;
18
+ private readonly _interleaved;
19
+ private _lastMouseDownPoint?;
20
+ /** Creates a MapLibre overlay. */
21
+ constructor(props: MapLibreOverlayProps);
22
+ private _filterProps;
23
+ /** Updates partial properties of the underlying Deck instance. */
24
+ setProps(props: MapLibreOverlayProps): void;
25
+ /** Called when the control is added to a map. */
26
+ onAdd(map: MapLibreMap): HTMLDivElement;
27
+ /** Called when the control is removed from a map. */
28
+ onRemove(_map: MapLibreMap): void;
29
+ /** Default control position. */
30
+ getDefaultPosition(): ControlPosition;
31
+ /** Forwards to Deck.pickObject. */
32
+ pickObject(params: Parameters<Deck['pickObject']>[0]): ReturnType<Deck['pickObject']>;
33
+ /** Forwards to Deck.pickMultipleObjects. */
34
+ pickMultipleObjects(params: Parameters<Deck['pickMultipleObjects']>[0]): ReturnType<Deck['pickMultipleObjects']>;
35
+ /** Forwards to Deck.pickObjects. */
36
+ pickObjects(params: Parameters<Deck['pickObjects']>[0]): ReturnType<Deck['pickObjects']>;
37
+ /** Removes the control from its map and releases resources. */
38
+ finalize(): void;
39
+ /** Returns the basemap canvas in interleaved mode and Deck's canvas otherwise. */
40
+ getCanvas(): HTMLCanvasElement | null;
41
+ private _onAddOverlaid;
42
+ private _onAddInterleaved;
43
+ private _onRemoveOverlaid;
44
+ private _onRemoveInterleaved;
45
+ private _handleStyleChange;
46
+ private _updateContainerSize;
47
+ private _getViews;
48
+ private _updateViewState;
49
+ private _handleMouseEvent;
50
+ }
51
+ //# sourceMappingURL=overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAY3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAC,MAAM,aAAa,CAAC;AAQ/E,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,SAAS,EACP,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,YAAY,CACf,GAAG;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,QAAQ;IACtD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAC,CAAY;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,mBAAmB,CAAC,CAA2D;IAEvF,kCAAkC;gBACtB,KAAK,EAAE,oBAAoB;IAMvC,OAAO,CAAC,YAAY;IAapB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAmB3C,iDAAiD;IACjD,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc;IAmBvC,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAgBjC,gCAAgC;IAChC,kBAAkB,IAAI,eAAe;IAIrC,mCAAmC;IACnC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAKrF,4CAA4C;IAC5C,mBAAmB,CACjB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAK1C,oCAAoC;IACpC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAKxF,+DAA+D;IAC/D,QAAQ,IAAI,IAAI;IAIhB,kFAAkF;IAClF,SAAS,IAAI,iBAAiB,GAAG,IAAI;IAOrC,OAAO,CAAC,cAAc;IA8CtB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,kBAAkB,CASxB;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,gBAAgB,CAYtB;IAGF,OAAO,CAAC,iBAAiB,CAiFvB;CACH"}