@deck.gl/maplibre 9.4.0 → 10.0.0-alpha.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.
@@ -11,6 +11,12 @@ type CompatibleMapLibreMap = {
11
11
  };
12
12
  export declare function getMapLibreElevation(map: CompatibleMapLibreMap): number | undefined;
13
13
  export declare function getMapLibreProjection(map: CompatibleMapLibreMap): 'mercator' | 'globe';
14
+ /**
15
+ * Returns the elevation of the map center that the MapLibre camera targets, if any.
16
+ * MapLibre's globe camera targets sea level and its Web Mercator camera the terrain. During the
17
+ * globe projection's transition, MapLibre blends the two, which a target in between approximates.
18
+ */
19
+ export declare function getMapLibreCameraElevation(map: CompatibleMapLibreMap, zoom: number): number | undefined;
14
20
  export declare function getMapLibreRenderParameters(parametersOrMatrix: unknown, legacyParameters?: unknown): MapLibreRenderParameters;
15
21
  export {};
16
22
  //# sourceMappingURL=compatibility.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"AAMA,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;AAKD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,2BAA2B,CACzC,kBAAkB,EAAE,OAAO,EAC3B,gBAAgB,CAAC,EAAE,OAAO,GACzB,wBAAwB,CAQ1B"}
@@ -1,6 +1,7 @@
1
1
  // deck.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { clamp } from '@math.gl/core';
4
5
  export function getMapLibreElevation(map) {
5
6
  if (map.getCenterElevation) {
6
7
  return map.getCenterElevation();
@@ -23,6 +24,25 @@ export function getMapLibreProjection(map) {
23
24
  }
24
25
  return 'mercator';
25
26
  }
27
+ /** Zoom range in which MapLibre's `globe` projection transitions to Web Mercator */
28
+ const MAPLIBRE_GLOBE_TRANSITION_ZOOMS = [11, 12];
29
+ /**
30
+ * Returns the elevation of the map center that the MapLibre camera targets, if any.
31
+ * MapLibre's globe camera targets sea level and its Web Mercator camera the terrain. During the
32
+ * globe projection's transition, MapLibre blends the two, which a target in between approximates.
33
+ */
34
+ export function getMapLibreCameraElevation(map, zoom) {
35
+ const elevation = getMapLibreElevation(map);
36
+ if (typeof elevation !== 'number' || !Number.isFinite(elevation)) {
37
+ return undefined;
38
+ }
39
+ if (getMapLibreProjection(map) === 'globe') {
40
+ const [startZoom, endZoom] = MAPLIBRE_GLOBE_TRANSITION_ZOOMS;
41
+ const mercatorWeight = clamp((zoom - startZoom) / (endZoom - startZoom), 0, 1);
42
+ return elevation * mercatorWeight;
43
+ }
44
+ return elevation;
45
+ }
26
46
  export function getMapLibreRenderParameters(parametersOrMatrix, legacyParameters) {
27
47
  if (isMapLibreRenderParameters(parametersOrMatrix)) {
28
48
  return parametersOrMatrix;
@@ -1 +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"}
1
+ {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;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,oFAAoF;AACpF,MAAM,+BAA+B,GAAG,CAAC,EAAE,EAAE,EAAE,CAAU,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAA0B,EAC1B,IAAY;IAEZ,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,+BAA+B,CAAC;QAC7D,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,SAAS,GAAG,cAAc,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,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"}
@@ -1 +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"}
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,CAyD7E;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"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { Deck, MapView, _GlobeView as GlobeView, _flatten as flatten } from '@deck.gl/core';
5
- import { getMapLibreElevation, getMapLibreProjection } from "./compatibility.js";
5
+ import { getMapLibreCameraElevation, getMapLibreProjection } from "./compatibility.js";
6
6
  import { getMapLibreLayerGroupId } from "./layer-utils.js";
7
7
  export const MAPLIBRE_VIEW_ID = 'maplibre';
8
8
  const MAPLIBRE_DECK_STATES = new WeakMap();
@@ -67,8 +67,8 @@ export function getMapLibreViewState(map) {
67
67
  },
68
68
  repeat: map.getRenderWorldCopies()
69
69
  };
70
- const elevation = getMapLibreElevation(map);
71
- if (typeof elevation === 'number' && Number.isFinite(elevation)) {
70
+ const elevation = getMapLibreCameraElevation(map, viewState.zoom);
71
+ if (elevation !== undefined) {
72
72
  viewState.position = [0, 0, elevation];
73
73
  }
74
74
  return viewState;
@@ -93,6 +93,7 @@ export function createMapLibreDeckInstance(map, deck) {
93
93
  },
94
94
  renderListener: () => {
95
95
  if (deck.isInitialized) {
96
+ syncMapLibreElevation(deck, map);
96
97
  afterMapLibreRender(deck, map);
97
98
  }
98
99
  }
@@ -117,10 +118,11 @@ export function createMapLibreDeckInstance(map, deck) {
117
118
  }
118
119
  else {
119
120
  deckProps.onLoad = () => {
120
- onLoad?.();
121
121
  if (MAPLIBRE_DECK_STATES.get(map) === state) {
122
122
  startWatchingMove(map, state);
123
+ onMapLibreMove(deck, map);
123
124
  }
125
+ onLoad?.();
124
126
  };
125
127
  }
126
128
  deck.setProps(deckProps);
@@ -231,6 +233,17 @@ function afterMapLibreRender(deck, map) {
231
233
  }
232
234
  deck.userData.currentViewport = null;
233
235
  }
236
+ /**
237
+ * Picking uses the stored view state, so it has to follow the center elevation that MapLibre
238
+ * changes without a move event while terrain loads.
239
+ */
240
+ function syncMapLibreElevation(deck, map) {
241
+ const elevation = getMapLibreCameraElevation(map, map.getZoom());
242
+ const viewState = deck.props.viewState;
243
+ if (viewState?.position?.[2] !== elevation) {
244
+ onMapLibreMove(deck, map);
245
+ }
246
+ }
234
247
  function onMapLibreMove(deck, map) {
235
248
  deck.setProps({ viewState: getMapLibreViewState(map) });
236
249
  deck.needsRedraw({ clearRedrawFlags: true });
@@ -1 +1 @@
1
- {"version":3,"file":"deck-utils.js","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deck-utils.js","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs ADDED
@@ -0,0 +1,722 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // dist/index.js
20
+ var index_exports = {};
21
+ __export(index_exports, {
22
+ MapLibreOverlay: () => MapLibreOverlay
23
+ });
24
+ module.exports = __toCommonJS(index_exports);
25
+
26
+ // dist/overlay.js
27
+ var import_core5 = require("@deck.gl/core");
28
+
29
+ // dist/deck-utils.js
30
+ var import_core2 = require("@deck.gl/core");
31
+
32
+ // dist/compatibility.js
33
+ var import_core = require("@math.gl/core");
34
+ function getMapLibreElevation(map) {
35
+ var _a;
36
+ if (map.getCenterElevation) {
37
+ return map.getCenterElevation();
38
+ }
39
+ return (_a = map.getCameraTargetElevation) == null ? void 0 : _a.call(map);
40
+ }
41
+ function getMapLibreProjection(map) {
42
+ var _a, _b;
43
+ let type = "mercator";
44
+ try {
45
+ type = ((_b = (_a = map.getProjection) == null ? void 0 : _a.call(map)) == null ? void 0 : _b.type) || "mercator";
46
+ } catch {
47
+ }
48
+ if (type === "globe") {
49
+ return "globe";
50
+ }
51
+ if (type !== "mercator") {
52
+ throw new Error(`Unsupported MapLibre projection: ${String(type)}`);
53
+ }
54
+ return "mercator";
55
+ }
56
+ var MAPLIBRE_GLOBE_TRANSITION_ZOOMS = [11, 12];
57
+ function getMapLibreCameraElevation(map, zoom) {
58
+ const elevation = getMapLibreElevation(map);
59
+ if (typeof elevation !== "number" || !Number.isFinite(elevation)) {
60
+ return void 0;
61
+ }
62
+ if (getMapLibreProjection(map) === "globe") {
63
+ const [startZoom, endZoom] = MAPLIBRE_GLOBE_TRANSITION_ZOOMS;
64
+ const mercatorWeight = (0, import_core.clamp)((zoom - startZoom) / (endZoom - startZoom), 0, 1);
65
+ return elevation * mercatorWeight;
66
+ }
67
+ return elevation;
68
+ }
69
+ function getMapLibreRenderParameters(parametersOrMatrix, legacyParameters) {
70
+ if (isMapLibreRenderParameters(parametersOrMatrix)) {
71
+ return parametersOrMatrix;
72
+ }
73
+ if (isMapLibreRenderParameters(legacyParameters)) {
74
+ return legacyParameters;
75
+ }
76
+ throw new Error("MapLibreOverlay interleaved rendering requires MapLibre GL JS 4.5.1 or later");
77
+ }
78
+ function isMapLibreRenderParameters(value) {
79
+ if (!value || typeof value !== "object") {
80
+ return false;
81
+ }
82
+ const parameters = value;
83
+ return Number.isFinite(parameters.nearZ) && Number.isFinite(parameters.farZ);
84
+ }
85
+
86
+ // dist/layer-utils.js
87
+ var MAPLIBRE_LAST_LAYER_GROUP_ID = "deck-maplibre-layer-group-last";
88
+ function getMapLibreLayerGroupId(layer) {
89
+ return layer.props.beforeId ? `deck-maplibre-layer-group-before:${layer.props.beforeId}` : MAPLIBRE_LAST_LAYER_GROUP_ID;
90
+ }
91
+
92
+ // dist/deck-utils.js
93
+ var MAPLIBRE_VIEW_ID = "maplibre";
94
+ var MAPLIBRE_DECK_STATES = /* @__PURE__ */ new WeakMap();
95
+ function createMapLibreInterleavedDeck(map, props) {
96
+ if (MAPLIBRE_DECK_STATES.has(map)) {
97
+ throw new Error("MapLibreOverlay supports one interleaved overlay per map");
98
+ }
99
+ const gl = map.getCanvas().getContext("webgl2");
100
+ if (!gl) {
101
+ throw new Error("MapLibreOverlay interleaved rendering requires WebGL2.");
102
+ }
103
+ const { device: _, ...deckProps } = props;
104
+ const deck = new import_core2.Deck({ ...deckProps, gl });
105
+ try {
106
+ return createMapLibreDeckInstance(map, deck);
107
+ } catch (error) {
108
+ if (getMapLibreDeckInstance(map) === deck) {
109
+ removeMapLibreDeckInstance(map);
110
+ } else {
111
+ deck.finalize();
112
+ }
113
+ throw error;
114
+ }
115
+ }
116
+ function getMapLibreDefaultParameters(_map, interleaved) {
117
+ return interleaved ? {
118
+ depthWriteEnabled: true,
119
+ depthCompare: "less-equal",
120
+ depthBias: 0,
121
+ blend: true,
122
+ blendColorSrcFactor: "src-alpha",
123
+ blendColorDstFactor: "one-minus-src-alpha",
124
+ blendAlphaSrcFactor: "one",
125
+ blendAlphaDstFactor: "one-minus-src-alpha",
126
+ blendColorOperation: "add",
127
+ blendAlphaOperation: "add"
128
+ } : {};
129
+ }
130
+ function getMapLibreDefaultView(map) {
131
+ return getMapLibreProjection(map) === "globe" ? new import_core2._GlobeView({ id: MAPLIBRE_VIEW_ID }) : new import_core2.MapView({ id: MAPLIBRE_VIEW_ID });
132
+ }
133
+ function getMapLibreViewState(map) {
134
+ const { lng, lat } = map.getCenter();
135
+ const padding = map.getPadding();
136
+ const viewState = {
137
+ longitude: (lng + 540) % 360 - 180,
138
+ latitude: lat,
139
+ zoom: map.getZoom(),
140
+ bearing: map.getBearing(),
141
+ pitch: map.getPitch(),
142
+ padding: {
143
+ top: padding.top ?? 0,
144
+ bottom: padding.bottom ?? 0,
145
+ left: padding.left ?? 0,
146
+ right: padding.right ?? 0
147
+ },
148
+ repeat: map.getRenderWorldCopies()
149
+ };
150
+ const elevation = getMapLibreCameraElevation(map, viewState.zoom);
151
+ if (elevation !== void 0) {
152
+ viewState.position = [0, 0, elevation];
153
+ }
154
+ return viewState;
155
+ }
156
+ function createMapLibreDeckInstance(map, deck) {
157
+ const existingState = MAPLIBRE_DECK_STATES.get(map);
158
+ if (existingState) {
159
+ throw new Error("MapLibreOverlay supports one interleaved overlay per map");
160
+ }
161
+ const customRender = deck.props._customRender;
162
+ const onLoad = deck.props.onLoad;
163
+ const state = {
164
+ deck,
165
+ watchingMove: false,
166
+ moveListener: () => {
167
+ if (deck.isInitialized) {
168
+ onMapLibreMove(deck, map);
169
+ } else {
170
+ stopWatchingMove(map, state);
171
+ }
172
+ },
173
+ renderListener: () => {
174
+ if (deck.isInitialized) {
175
+ syncMapLibreElevation(deck, map);
176
+ afterMapLibreRender(deck, map);
177
+ }
178
+ }
179
+ };
180
+ MAPLIBRE_DECK_STATES.set(map, state);
181
+ const deckProps = {
182
+ ...deck.props,
183
+ _customRender: () => {
184
+ map.triggerRepaint();
185
+ customRender == null ? void 0 : customRender("");
186
+ }
187
+ };
188
+ deckProps.views || (deckProps.views = getMapLibreDefaultView(map));
189
+ Object.assign(deckProps, {
190
+ width: null,
191
+ height: null,
192
+ touchAction: "unset",
193
+ viewState: getMapLibreViewState(map)
194
+ });
195
+ if (deck.isInitialized) {
196
+ startWatchingMove(map, state);
197
+ } else {
198
+ deckProps.onLoad = () => {
199
+ if (MAPLIBRE_DECK_STATES.get(map) === state) {
200
+ startWatchingMove(map, state);
201
+ onMapLibreMove(deck, map);
202
+ }
203
+ onLoad == null ? void 0 : onLoad();
204
+ };
205
+ }
206
+ deck.setProps(deckProps);
207
+ map.on("render", state.renderListener);
208
+ return deck;
209
+ }
210
+ function getMapLibreDeckInstance(map) {
211
+ var _a;
212
+ return (_a = MAPLIBRE_DECK_STATES.get(map)) == null ? void 0 : _a.deck;
213
+ }
214
+ function removeMapLibreDeckInstance(map) {
215
+ const state = MAPLIBRE_DECK_STATES.get(map);
216
+ if (!state) {
217
+ return;
218
+ }
219
+ stopWatchingMove(map, state);
220
+ map.off("render", state.renderListener);
221
+ state.deck.finalize();
222
+ MAPLIBRE_DECK_STATES.delete(map);
223
+ }
224
+ function drawMapLibreLayerGroup(deck, map, group, renderParameters) {
225
+ if (!deck.isInitialized) {
226
+ return;
227
+ }
228
+ let { currentViewport } = deck.userData;
229
+ let clearStack = false;
230
+ if (!currentViewport) {
231
+ currentViewport = getMapLibreViewport(deck, map, renderParameters);
232
+ deck.userData.currentViewport = currentViewport;
233
+ clearStack = true;
234
+ }
235
+ if (!currentViewport) {
236
+ return;
237
+ }
238
+ deck._drawLayers("maplibre-repaint", {
239
+ viewports: [currentViewport],
240
+ layerFilter: (params) => {
241
+ if (deck.props.layerFilter && !deck.props.layerFilter(params)) {
242
+ return false;
243
+ }
244
+ const layer = params.layer;
245
+ return layer.props.beforeId === group.beforeId;
246
+ },
247
+ clearStack,
248
+ clearCanvas: false
249
+ });
250
+ }
251
+ function startWatchingMove(map, state) {
252
+ if (!state.watchingMove) {
253
+ state.watchingMove = true;
254
+ map.on("move", state.moveListener);
255
+ }
256
+ }
257
+ function stopWatchingMove(map, state) {
258
+ if (state.watchingMove) {
259
+ state.watchingMove = false;
260
+ map.off("move", state.moveListener);
261
+ }
262
+ }
263
+ function getMapLibreViewport(deck, map, renderParameters) {
264
+ const viewState = getMapLibreViewState(map);
265
+ const view = deck.getView(MAPLIBRE_VIEW_ID) || getMapLibreDefaultView(map);
266
+ if (renderParameters) {
267
+ view.props.nearZMultiplier = 0.2;
268
+ const height = map.getCanvas().clientHeight;
269
+ if (height > 0 && Number.isFinite(renderParameters.nearZ) && Number.isFinite(renderParameters.farZ)) {
270
+ viewState.nearZ = renderParameters.nearZ / height;
271
+ viewState.farZ = renderParameters.farZ / height;
272
+ }
273
+ }
274
+ return view.makeViewport({
275
+ width: deck.width,
276
+ height: deck.height,
277
+ viewState
278
+ });
279
+ }
280
+ function afterMapLibreRender(deck, map) {
281
+ var _a, _b, _c, _d;
282
+ const deckLayers = (0, import_core2._flatten)(deck.props.layers, Boolean);
283
+ const hasNonMapLibreLayers = deckLayers.some((layer) => layer && !map.getLayer(getMapLibreLayerGroupId(layer)));
284
+ let viewports = deck.getViewports();
285
+ const mapLibreViewportIndex = viewports.findIndex((viewport) => viewport.id === MAPLIBRE_VIEW_ID);
286
+ const hasNonMapLibreViews = viewports.length > 1 || mapLibreViewportIndex < 0;
287
+ if (hasNonMapLibreLayers || hasNonMapLibreViews) {
288
+ if (mapLibreViewportIndex >= 0) {
289
+ viewports = viewports.slice();
290
+ const mapLibreViewport = getMapLibreViewport(deck, map);
291
+ if (mapLibreViewport) {
292
+ viewports[mapLibreViewportIndex] = mapLibreViewport;
293
+ } else {
294
+ viewports.splice(mapLibreViewportIndex, 1);
295
+ }
296
+ }
297
+ deck._drawLayers("maplibre-repaint", {
298
+ viewports,
299
+ layerFilter: (params) => (!deck.props.layerFilter || deck.props.layerFilter(params)) && (params.viewport.id !== MAPLIBRE_VIEW_ID || !map.getLayer(getMapLibreLayerGroupId(params.layer))),
300
+ clearCanvas: false
301
+ });
302
+ } else {
303
+ const device = deck.device;
304
+ const gl = device == null ? void 0 : device.gl;
305
+ (_b = (_a = deck.props).onBeforeRender) == null ? void 0 : _b.call(_a, { device, gl });
306
+ (_d = (_c = deck.props).onAfterRender) == null ? void 0 : _d.call(_c, { device, gl });
307
+ }
308
+ deck.userData.currentViewport = null;
309
+ }
310
+ function syncMapLibreElevation(deck, map) {
311
+ var _a;
312
+ const elevation = getMapLibreCameraElevation(map, map.getZoom());
313
+ const viewState = deck.props.viewState;
314
+ if (((_a = viewState == null ? void 0 : viewState.position) == null ? void 0 : _a[2]) !== elevation) {
315
+ onMapLibreMove(deck, map);
316
+ }
317
+ }
318
+ function onMapLibreMove(deck, map) {
319
+ deck.setProps({ viewState: getMapLibreViewState(map) });
320
+ deck.needsRedraw({ clearRedrawFlags: true });
321
+ }
322
+
323
+ // dist/resolve-layer-groups.js
324
+ var import_core4 = require("@deck.gl/core");
325
+
326
+ // dist/layer-group.js
327
+ var import_core3 = require("@deck.gl/core");
328
+ var MapLibreLayerGroup = class {
329
+ constructor(props) {
330
+ this.type = "custom";
331
+ this.map = null;
332
+ (0, import_core3.assert)(props.id, "id is required");
333
+ this.id = props.id;
334
+ this.renderingMode = props.renderingMode || "3d";
335
+ this.beforeId = props.beforeId;
336
+ }
337
+ onAdd(map) {
338
+ this.map = map;
339
+ }
340
+ onRemove() {
341
+ this.map = null;
342
+ }
343
+ render(_gl, parametersOrMatrix, legacyParameters) {
344
+ if (!this.map) {
345
+ return;
346
+ }
347
+ const deck = getMapLibreDeckInstance(this.map);
348
+ if (!deck) {
349
+ return;
350
+ }
351
+ drawMapLibreLayerGroup(deck, this.map, this, getMapLibreRenderParameters(parametersOrMatrix, legacyParameters));
352
+ }
353
+ };
354
+
355
+ // dist/resolve-layer-groups.js
356
+ var LAYER_GROUPS = /* @__PURE__ */ new WeakMap();
357
+ function resolveMapLibreLayerGroups(map, oldLayers, newLayers) {
358
+ if (!map || !map.isStyleLoaded()) {
359
+ return;
360
+ }
361
+ let layerGroups = LAYER_GROUPS.get(map);
362
+ if (!layerGroups) {
363
+ layerGroups = /* @__PURE__ */ new Map();
364
+ LAYER_GROUPS.set(map, layerGroups);
365
+ }
366
+ const layers = (0, import_core4._flatten)(newLayers, Boolean);
367
+ const newLayerGroupIds = new Set(layers.map(getMapLibreLayerGroupId));
368
+ if (oldLayers !== newLayers) {
369
+ const previousLayers = (0, import_core4._flatten)(oldLayers, Boolean);
370
+ const previousLayerGroupIds = new Set(previousLayers.map(getMapLibreLayerGroupId));
371
+ for (const groupId of previousLayerGroupIds) {
372
+ if (!newLayerGroupIds.has(groupId) && layerGroups.has(groupId)) {
373
+ if (map.getLayer(groupId)) {
374
+ map.removeLayer(groupId);
375
+ }
376
+ layerGroups.delete(groupId);
377
+ }
378
+ }
379
+ }
380
+ for (const layer of layers) {
381
+ const groupId = getMapLibreLayerGroupId(layer);
382
+ if (layerGroups.has(groupId)) {
383
+ if (!map.getLayer(groupId)) {
384
+ map.addLayer(layerGroups.get(groupId), layer.props.beforeId);
385
+ }
386
+ continue;
387
+ }
388
+ if (map.getLayer(groupId)) {
389
+ throw new Error(`MapLibre style already contains a non-deck layer with id ${groupId}`);
390
+ }
391
+ const group = new MapLibreLayerGroup({
392
+ id: groupId,
393
+ beforeId: layer.props.beforeId
394
+ });
395
+ layerGroups.set(groupId, group);
396
+ map.addLayer(group, layer.props.beforeId);
397
+ }
398
+ for (const groupId of newLayerGroupIds) {
399
+ const group = layerGroups.get(groupId);
400
+ const mapLayers = map.getLayersOrder();
401
+ const expectedGroupIndex = group.beforeId ? mapLayers.indexOf(group.beforeId) : mapLayers.length;
402
+ if (expectedGroupIndex < 0) {
403
+ continue;
404
+ }
405
+ const currentGroupIndex = mapLayers.indexOf(groupId);
406
+ if (currentGroupIndex !== expectedGroupIndex - 1) {
407
+ map.moveLayer(groupId, group.beforeId);
408
+ }
409
+ }
410
+ }
411
+
412
+ // dist/overlay.js
413
+ var MapLibreOverlay = class {
414
+ /** Creates a MapLibre overlay. */
415
+ constructor(props) {
416
+ this._handleSourceData = () => {
417
+ var _a;
418
+ if ((_a = this._map) == null ? void 0 : _a.isStyleLoaded()) {
419
+ this._resolveLayerGroups(this._props.layers, this._props.layers);
420
+ }
421
+ };
422
+ this._handleStyleChange = () => {
423
+ var _a;
424
+ this._resolveLayerGroups(this._props.layers, this._props.layers);
425
+ if (!this._map) {
426
+ return;
427
+ }
428
+ if (getMapLibreProjection(this._map)) {
429
+ (_a = this._deck) == null ? void 0 : _a.setProps({ views: this._getViews(this._map) });
430
+ }
431
+ };
432
+ this._updateContainerSize = () => {
433
+ if (this._map && this._container) {
434
+ const { clientWidth, clientHeight } = this._map.getContainer();
435
+ Object.assign(this._container.style, {
436
+ width: `${clientWidth}px`,
437
+ height: `${clientHeight}px`
438
+ });
439
+ }
440
+ };
441
+ this._updateViewState = () => {
442
+ const deck = this._deck;
443
+ const map = this._map;
444
+ if (deck && map) {
445
+ deck.setProps({
446
+ views: this._getViews(map),
447
+ viewState: getMapLibreViewState(map)
448
+ });
449
+ if (deck.isInitialized) {
450
+ deck.redraw();
451
+ }
452
+ }
453
+ };
454
+ this._handleMouseEvent = (event) => {
455
+ const deck = this._deck;
456
+ if (!deck || !deck.isInitialized) {
457
+ return;
458
+ }
459
+ const mockEvent = {
460
+ type: event.type,
461
+ offsetCenter: event.point || { x: 0, y: 0 },
462
+ srcEvent: event
463
+ };
464
+ const lastDown = this._lastMouseDownPoint;
465
+ if (!event.point && lastDown && event.originalEvent instanceof MouseEvent) {
466
+ mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;
467
+ mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;
468
+ mockEvent.offsetCenter = {
469
+ x: lastDown.x + mockEvent.deltaX,
470
+ y: lastDown.y + mockEvent.deltaY
471
+ };
472
+ }
473
+ switch (mockEvent.type) {
474
+ case "mousedown":
475
+ deck._onPointerDown(mockEvent);
476
+ if (!(event.originalEvent instanceof MouseEvent)) {
477
+ return;
478
+ }
479
+ this._lastMouseDownPoint = {
480
+ ...mockEvent.offsetCenter,
481
+ clientX: event.originalEvent.clientX,
482
+ clientY: event.originalEvent.clientY
483
+ };
484
+ break;
485
+ case "dragstart":
486
+ mockEvent.type = "panstart";
487
+ deck._onEvent(mockEvent);
488
+ break;
489
+ case "drag":
490
+ mockEvent.type = "panmove";
491
+ deck._onEvent(mockEvent);
492
+ break;
493
+ case "dragend":
494
+ mockEvent.type = "panend";
495
+ deck._onEvent(mockEvent);
496
+ break;
497
+ case "click":
498
+ mockEvent.tapCount = 1;
499
+ deck._onEvent(mockEvent);
500
+ break;
501
+ case "dblclick":
502
+ mockEvent.type = "click";
503
+ mockEvent.tapCount = 2;
504
+ deck._onEvent(mockEvent);
505
+ break;
506
+ case "mousemove":
507
+ mockEvent.type = "pointermove";
508
+ deck._onPointerMove(mockEvent);
509
+ break;
510
+ case "mouseout":
511
+ mockEvent.type = "pointerleave";
512
+ deck._onPointerMove(mockEvent);
513
+ break;
514
+ default:
515
+ return;
516
+ }
517
+ };
518
+ const { interleaved = false } = props;
519
+ this._interleaved = interleaved;
520
+ this._props = this._filterProps(props);
521
+ }
522
+ _filterProps(props) {
523
+ const { interleaved: _, useDevicePixels, device, ...deckProps } = props;
524
+ if (!this._interleaved) {
525
+ if (useDevicePixels !== void 0) {
526
+ Object.assign(deckProps, { useDevicePixels });
527
+ }
528
+ if (device !== void 0) {
529
+ Object.assign(deckProps, { device });
530
+ }
531
+ }
532
+ return deckProps;
533
+ }
534
+ /** Updates partial properties of the underlying Deck instance. */
535
+ setProps(props) {
536
+ if (this._interleaved && props.layers) {
537
+ this._resolveLayerGroups(this._props.layers, props.layers);
538
+ }
539
+ Object.assign(this._props, this._filterProps(props));
540
+ if (this._deck && this._map) {
541
+ this._deck.setProps({
542
+ ...this._props,
543
+ views: this._getViews(this._map),
544
+ parameters: {
545
+ ...getMapLibreDefaultParameters(this._map, this._interleaved),
546
+ ...this._props.parameters
547
+ }
548
+ });
549
+ }
550
+ }
551
+ /** Called when the control is added to a map. */
552
+ onAdd(map) {
553
+ this._map = map;
554
+ try {
555
+ return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);
556
+ } catch (error) {
557
+ if (this._deck) {
558
+ if (this._interleaved) {
559
+ this._onRemoveInterleaved(map);
560
+ } else {
561
+ this._onRemoveOverlaid(map);
562
+ }
563
+ }
564
+ this._deck = void 0;
565
+ this._map = void 0;
566
+ this._container = void 0;
567
+ throw error;
568
+ }
569
+ }
570
+ /** Called when the control is removed from a map. */
571
+ onRemove(_map) {
572
+ const map = this._map;
573
+ if (map) {
574
+ if (this._interleaved) {
575
+ this._onRemoveInterleaved(map);
576
+ } else {
577
+ this._onRemoveOverlaid(map);
578
+ }
579
+ }
580
+ this._deck = void 0;
581
+ this._map = void 0;
582
+ this._container = void 0;
583
+ }
584
+ /** Default control position. */
585
+ getDefaultPosition() {
586
+ return "top-left";
587
+ }
588
+ /** Forwards to Deck.pickObject. */
589
+ pickObject(params) {
590
+ (0, import_core5.assert)(this._deck);
591
+ return this._deck.pickObject(params);
592
+ }
593
+ /** Forwards to Deck.pickMultipleObjects. */
594
+ pickMultipleObjects(params) {
595
+ (0, import_core5.assert)(this._deck);
596
+ return this._deck.pickMultipleObjects(params);
597
+ }
598
+ /** Forwards to Deck.pickObjects. */
599
+ pickObjects(params) {
600
+ (0, import_core5.assert)(this._deck);
601
+ return this._deck.pickObjects(params);
602
+ }
603
+ /** Removes the control from its map and releases resources. */
604
+ finalize() {
605
+ var _a;
606
+ (_a = this._map) == null ? void 0 : _a.removeControl(this);
607
+ }
608
+ /** Returns the basemap canvas in interleaved mode and Deck's canvas otherwise. */
609
+ getCanvas() {
610
+ if (!this._map) {
611
+ return null;
612
+ }
613
+ return this._interleaved ? this._map.getCanvas() : this._deck.getCanvas();
614
+ }
615
+ _onAddOverlaid(map) {
616
+ var _a;
617
+ const container = document.createElement("div");
618
+ Object.assign(container.style, {
619
+ position: "absolute",
620
+ left: 0,
621
+ top: 0,
622
+ textAlign: "initial",
623
+ pointerEvents: "none"
624
+ });
625
+ this._container = container;
626
+ this._deck = new import_core5.Deck({
627
+ ...this._props,
628
+ parent: container,
629
+ deviceProps: {
630
+ ...this._props.deviceProps,
631
+ createCanvasContext: {
632
+ ...typeof ((_a = this._props.deviceProps) == null ? void 0 : _a.createCanvasContext) === "object" ? this._props.deviceProps.createCanvasContext : void 0,
633
+ pixelSizeSource: "css-dpr"
634
+ }
635
+ },
636
+ parameters: {
637
+ ...getMapLibreDefaultParameters(map, false),
638
+ ...this._props.parameters
639
+ },
640
+ views: this._getViews(map),
641
+ viewState: getMapLibreViewState(map)
642
+ });
643
+ map.on("resize", this._updateContainerSize);
644
+ map.on("render", this._updateViewState);
645
+ map.on("mousedown", this._handleMouseEvent);
646
+ map.on("dragstart", this._handleMouseEvent);
647
+ map.on("drag", this._handleMouseEvent);
648
+ map.on("dragend", this._handleMouseEvent);
649
+ map.on("mousemove", this._handleMouseEvent);
650
+ map.on("mouseout", this._handleMouseEvent);
651
+ map.on("click", this._handleMouseEvent);
652
+ map.on("dblclick", this._handleMouseEvent);
653
+ this._updateContainerSize();
654
+ return container;
655
+ }
656
+ _onAddInterleaved(map) {
657
+ this._deck = createMapLibreInterleavedDeck(map, {
658
+ ...this._props,
659
+ views: this._getViews(map),
660
+ parameters: {
661
+ ...getMapLibreDefaultParameters(map, true),
662
+ ...this._props.parameters
663
+ }
664
+ });
665
+ map.on("styledata", this._handleStyleChange);
666
+ this._resolveLayerGroups([], this._props.layers);
667
+ return document.createElement("div");
668
+ }
669
+ _onRemoveOverlaid(map) {
670
+ var _a, _b;
671
+ map.off("resize", this._updateContainerSize);
672
+ map.off("render", this._updateViewState);
673
+ map.off("mousedown", this._handleMouseEvent);
674
+ map.off("dragstart", this._handleMouseEvent);
675
+ map.off("drag", this._handleMouseEvent);
676
+ map.off("dragend", this._handleMouseEvent);
677
+ map.off("mousemove", this._handleMouseEvent);
678
+ map.off("mouseout", this._handleMouseEvent);
679
+ map.off("click", this._handleMouseEvent);
680
+ map.off("dblclick", this._handleMouseEvent);
681
+ (_a = this._deck) == null ? void 0 : _a.finalize();
682
+ (_b = this._container) == null ? void 0 : _b.remove();
683
+ }
684
+ _onRemoveInterleaved(map) {
685
+ map.off("styledata", this._handleStyleChange);
686
+ map.off("sourcedata", this._handleSourceData);
687
+ const appliedLayers = this._appliedLayers ?? this._props.layers;
688
+ this._appliedLayers = void 0;
689
+ try {
690
+ resolveMapLibreLayerGroups(map, appliedLayers, []);
691
+ } finally {
692
+ removeMapLibreDeckInstance(map);
693
+ }
694
+ }
695
+ /** Resolves layer groups now, or once the style and its sources finish loading. */
696
+ _resolveLayerGroups(oldLayers, newLayers) {
697
+ const map = this._map;
698
+ if (!map) {
699
+ return;
700
+ }
701
+ map.off("sourcedata", this._handleSourceData);
702
+ if (map.isStyleLoaded()) {
703
+ resolveMapLibreLayerGroups(map, this._appliedLayers ?? oldLayers, newLayers);
704
+ this._appliedLayers = void 0;
705
+ } else {
706
+ this._appliedLayers ?? (this._appliedLayers = oldLayers);
707
+ map.on("sourcedata", this._handleSourceData);
708
+ }
709
+ }
710
+ _getViews(map) {
711
+ if (!this._props.views) {
712
+ return getMapLibreDefaultView(map);
713
+ }
714
+ const views = Array.isArray(this._props.views) ? this._props.views : [this._props.views];
715
+ const hasMapLibreView = views.some((view) => view.id === MAPLIBRE_VIEW_ID);
716
+ if (hasMapLibreView) {
717
+ return this._props.views;
718
+ }
719
+ return [getMapLibreDefaultView(map), ...views];
720
+ }
721
+ };
722
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/overlay.ts", "../src/deck-utils.ts", "../src/compatibility.ts", "../src/layer-utils.ts", "../src/resolve-layer-groups.ts", "../src/layer-group.ts"],
4
+ "mappings": "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",
5
+ "names": ["import_core", "import_core", "GlobeView", "flatten", "import_core", "import_core", "flatten"]
6
+ }
package/dist/overlay.d.ts CHANGED
@@ -15,6 +15,8 @@ export default class MapLibreOverlay implements IControl {
15
15
  private _deck?;
16
16
  private _map?;
17
17
  private _container?;
18
+ /** Layers whose groups were last resolved into the map, while a newer resolve is deferred */
19
+ private _appliedLayers?;
18
20
  private readonly _interleaved;
19
21
  private _lastMouseDownPoint?;
20
22
  /** Creates a MapLibre overlay. */
@@ -42,6 +44,9 @@ export default class MapLibreOverlay implements IControl {
42
44
  private _onAddInterleaved;
43
45
  private _onRemoveOverlaid;
44
46
  private _onRemoveInterleaved;
47
+ /** Resolves layer groups now, or once the style and its sources finish loading. */
48
+ private _resolveLayerGroups;
49
+ private _handleSourceData;
45
50
  private _handleStyleChange;
46
51
  private _updateContainerSize;
47
52
  private _getViews;
@@ -1 +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"}
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,EAAa,MAAM,eAAe,CAAC;AAEzD,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,6FAA6F;IAC7F,OAAO,CAAC,cAAc,CAAC,CAAa;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;IAiBzB,OAAO,CAAC,oBAAoB;IAY5B,mFAAmF;IACnF,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,kBAAkB,CASxB;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,gBAAgB,CAYtB;IAGF,OAAO,CAAC,iBAAiB,CAiFvB;CACH"}
package/dist/overlay.js CHANGED
@@ -9,8 +9,13 @@ import { resolveMapLibreLayerGroups } from "./resolve-layer-groups.js";
9
9
  export default class MapLibreOverlay {
10
10
  /** Creates a MapLibre overlay. */
11
11
  constructor(props) {
12
+ this._handleSourceData = () => {
13
+ if (this._map?.isStyleLoaded()) {
14
+ this._resolveLayerGroups(this._props.layers, this._props.layers);
15
+ }
16
+ };
12
17
  this._handleStyleChange = () => {
13
- resolveMapLibreLayerGroups(this._map, this._props.layers, this._props.layers);
18
+ this._resolveLayerGroups(this._props.layers, this._props.layers);
14
19
  if (!this._map) {
15
20
  return;
16
21
  }
@@ -124,7 +129,7 @@ export default class MapLibreOverlay {
124
129
  /** Updates partial properties of the underlying Deck instance. */
125
130
  setProps(props) {
126
131
  if (this._interleaved && props.layers) {
127
- resolveMapLibreLayerGroups(this._map, this._props.layers, props.layers);
132
+ this._resolveLayerGroups(this._props.layers, props.layers);
128
133
  }
129
134
  Object.assign(this._props, this._filterProps(props));
130
135
  if (this._deck && this._map) {
@@ -256,7 +261,7 @@ export default class MapLibreOverlay {
256
261
  }
257
262
  });
258
263
  map.on('styledata', this._handleStyleChange);
259
- resolveMapLibreLayerGroups(map, [], this._props.layers);
264
+ this._resolveLayerGroups([], this._props.layers);
260
265
  return document.createElement('div');
261
266
  }
262
267
  _onRemoveOverlaid(map) {
@@ -271,16 +276,40 @@ export default class MapLibreOverlay {
271
276
  map.off('click', this._handleMouseEvent);
272
277
  map.off('dblclick', this._handleMouseEvent);
273
278
  this._deck?.finalize();
279
+ // MapLibre leaves removing the element to the control. A canvas that Deck does not own, such
280
+ // as the `device` prop's, would otherwise stay in this container and stop resizing with the map.
281
+ this._container?.remove();
274
282
  }
275
283
  _onRemoveInterleaved(map) {
276
284
  map.off('styledata', this._handleStyleChange);
285
+ map.off('sourcedata', this._handleSourceData);
286
+ const appliedLayers = this._appliedLayers ?? this._props.layers;
287
+ this._appliedLayers = undefined;
277
288
  try {
278
- resolveMapLibreLayerGroups(map, this._props.layers, []);
289
+ resolveMapLibreLayerGroups(map, appliedLayers, []);
279
290
  }
280
291
  finally {
281
292
  removeMapLibreDeckInstance(map);
282
293
  }
283
294
  }
295
+ /** Resolves layer groups now, or once the style and its sources finish loading. */
296
+ _resolveLayerGroups(oldLayers, newLayers) {
297
+ const map = this._map;
298
+ if (!map) {
299
+ return;
300
+ }
301
+ map.off('sourcedata', this._handleSourceData);
302
+ if (map.isStyleLoaded()) {
303
+ resolveMapLibreLayerGroups(map, this._appliedLayers ?? oldLayers, newLayers);
304
+ this._appliedLayers = undefined;
305
+ }
306
+ else {
307
+ // `map.isStyleLoaded()` also waits for sources and tiles, so the last `styledata` event can
308
+ // fire before layer groups can be added. Retry once a `sourcedata` event finds it loaded.
309
+ this._appliedLayers ?? (this._appliedLayers = oldLayers);
310
+ map.on('sourcedata', this._handleSourceData);
311
+ }
312
+ }
284
313
  _getViews(map) {
285
314
  if (!this._props.views) {
286
315
  return getMapLibreDefaultView(map);
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Use deck.gl layers with MapLibre GL JS",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "version": "9.4.0",
6
+ "version": "10.0.0-alpha.1",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -22,11 +22,13 @@
22
22
  },
23
23
  "homepage": "https://deck.gl",
24
24
  "types": "dist/index.d.ts",
25
+ "main": "dist/index.cjs",
25
26
  "module": "dist/index.js",
26
27
  "exports": {
27
28
  ".": {
28
29
  "types": "./dist/index.d.ts",
29
- "import": "./dist/index.js"
30
+ "import": "./dist/index.js",
31
+ "require": "./dist/index.cjs"
30
32
  }
31
33
  },
32
34
  "files": [
@@ -34,9 +36,12 @@
34
36
  "src"
35
37
  ],
36
38
  "sideEffects": false,
39
+ "dependencies": {
40
+ "@math.gl/core": "5.0.0-beta.8"
41
+ },
37
42
  "peerDependencies": {
38
- "@deck.gl/core": "~9.4.0",
39
- "@luma.gl/core": "~9.4.0",
43
+ "@deck.gl/core": "~10.0.0-alpha",
44
+ "@luma.gl/core": "10.0.0-alpha.14",
40
45
  "maplibre-gl": "^4.5.1 || ^5.0.0 || ^6.0.0"
41
46
  },
42
47
  "devDependencies": {
@@ -45,5 +50,5 @@
45
50
  "maplibre-gl-v5": "npm:maplibre-gl@5.0.0",
46
51
  "maplibre-gl-v6": "npm:maplibre-gl@6.0.0"
47
52
  },
48
- "gitHead": "5eded84b438eef83387dc6579c51670389053602"
53
+ "gitHead": "78067bff4f951169e02cbbe486ca9399078d1675"
49
54
  }
@@ -2,6 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
+ import {clamp} from '@math.gl/core';
6
+
5
7
  export type MapLibreRenderParameters = {
6
8
  farZ: number;
7
9
  nearZ: number;
@@ -36,6 +38,30 @@ export function getMapLibreProjection(map: CompatibleMapLibreMap): 'mercator' |
36
38
  return 'mercator';
37
39
  }
38
40
 
41
+ /** Zoom range in which MapLibre's `globe` projection transitions to Web Mercator */
42
+ const MAPLIBRE_GLOBE_TRANSITION_ZOOMS = [11, 12] as const;
43
+
44
+ /**
45
+ * Returns the elevation of the map center that the MapLibre camera targets, if any.
46
+ * MapLibre's globe camera targets sea level and its Web Mercator camera the terrain. During the
47
+ * globe projection's transition, MapLibre blends the two, which a target in between approximates.
48
+ */
49
+ export function getMapLibreCameraElevation(
50
+ map: CompatibleMapLibreMap,
51
+ zoom: number
52
+ ): number | undefined {
53
+ const elevation = getMapLibreElevation(map);
54
+ if (typeof elevation !== 'number' || !Number.isFinite(elevation)) {
55
+ return undefined;
56
+ }
57
+ if (getMapLibreProjection(map) === 'globe') {
58
+ const [startZoom, endZoom] = MAPLIBRE_GLOBE_TRANSITION_ZOOMS;
59
+ const mercatorWeight = clamp((zoom - startZoom) / (endZoom - startZoom), 0, 1);
60
+ return elevation * mercatorWeight;
61
+ }
62
+ return elevation;
63
+ }
64
+
39
65
  export function getMapLibreRenderParameters(
40
66
  parametersOrMatrix: unknown,
41
67
  legacyParameters?: unknown
package/src/deck-utils.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  import {Deck, MapView, _GlobeView as GlobeView, _flatten as flatten} from '@deck.gl/core';
6
6
 
7
7
  import {
8
- getMapLibreElevation,
8
+ getMapLibreCameraElevation,
9
9
  getMapLibreProjection,
10
10
  type MapLibreRenderParameters
11
11
  } from './compatibility';
@@ -103,8 +103,8 @@ export function getMapLibreViewState(map: MapLibreMap): MapViewState & {
103
103
  repeat: map.getRenderWorldCopies()
104
104
  };
105
105
 
106
- const elevation = getMapLibreElevation(map);
107
- if (typeof elevation === 'number' && Number.isFinite(elevation)) {
106
+ const elevation = getMapLibreCameraElevation(map, viewState.zoom);
107
+ if (elevation !== undefined) {
108
108
  viewState.position = [0, 0, elevation];
109
109
  }
110
110
 
@@ -131,6 +131,7 @@ export function createMapLibreDeckInstance(map: MapLibreMap, deck: Deck): Deck {
131
131
  },
132
132
  renderListener: () => {
133
133
  if (deck.isInitialized) {
134
+ syncMapLibreElevation(deck, map);
134
135
  afterMapLibreRender(deck, map);
135
136
  }
136
137
  }
@@ -156,10 +157,11 @@ export function createMapLibreDeckInstance(map: MapLibreMap, deck: Deck): Deck {
156
157
  startWatchingMove(map, state);
157
158
  } else {
158
159
  deckProps.onLoad = () => {
159
- onLoad?.();
160
160
  if (MAPLIBRE_DECK_STATES.get(map) === state) {
161
161
  startWatchingMove(map, state);
162
+ onMapLibreMove(deck, map);
162
163
  }
164
+ onLoad?.();
163
165
  };
164
166
  }
165
167
 
@@ -303,6 +305,18 @@ function afterMapLibreRender(deck: Deck, map: MapLibreMap): void {
303
305
  (deck.userData as UserData).currentViewport = null;
304
306
  }
305
307
 
308
+ /**
309
+ * Picking uses the stored view state, so it has to follow the center elevation that MapLibre
310
+ * changes without a move event while terrain loads.
311
+ */
312
+ function syncMapLibreElevation(deck: Deck, map: MapLibreMap): void {
313
+ const elevation = getMapLibreCameraElevation(map, map.getZoom());
314
+ const viewState = deck.props.viewState as MapViewState | null;
315
+ if (viewState?.position?.[2] !== elevation) {
316
+ onMapLibreMove(deck, map);
317
+ }
318
+ }
319
+
306
320
  function onMapLibreMove(deck: Deck, map: MapLibreMap): void {
307
321
  deck.setProps({viewState: getMapLibreViewState(map)});
308
322
  deck.needsRedraw({clearRedrawFlags: true});
package/src/overlay.ts CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  import {getMapLibreProjection} from './compatibility';
15
15
  import {resolveMapLibreLayerGroups} from './resolve-layer-groups';
16
16
 
17
- import type {DeckProps} from '@deck.gl/core';
17
+ import type {DeckProps, LayersList} from '@deck.gl/core';
18
18
  import type {MjolnirGestureEvent, MjolnirPointerEvent} from 'mjolnir.js';
19
19
  import type {ControlPosition, IControl, Map as MapLibreMap} from 'maplibre-gl';
20
20
 
@@ -50,6 +50,8 @@ export default class MapLibreOverlay implements IControl {
50
50
  private _deck?: Deck<any>;
51
51
  private _map?: MapLibreMap;
52
52
  private _container?: HTMLDivElement;
53
+ /** Layers whose groups were last resolved into the map, while a newer resolve is deferred */
54
+ private _appliedLayers?: LayersList;
53
55
  private readonly _interleaved: boolean;
54
56
 
55
57
  private _lastMouseDownPoint?: {x: number; y: number; clientX: number; clientY: number};
@@ -77,7 +79,7 @@ export default class MapLibreOverlay implements IControl {
77
79
  /** Updates partial properties of the underlying Deck instance. */
78
80
  setProps(props: MapLibreOverlayProps): void {
79
81
  if (this._interleaved && props.layers) {
80
- resolveMapLibreLayerGroups(this._map, this._props.layers, props.layers);
82
+ this._resolveLayerGroups(this._props.layers, props.layers);
81
83
  }
82
84
 
83
85
  Object.assign(this._props, this._filterProps(props));
@@ -226,7 +228,7 @@ export default class MapLibreOverlay implements IControl {
226
228
  });
227
229
 
228
230
  map.on('styledata', this._handleStyleChange);
229
- resolveMapLibreLayerGroups(map, [], this._props.layers);
231
+ this._resolveLayerGroups([], this._props.layers);
230
232
 
231
233
  return document.createElement('div');
232
234
  }
@@ -243,19 +245,50 @@ export default class MapLibreOverlay implements IControl {
243
245
  map.off('click', this._handleMouseEvent);
244
246
  map.off('dblclick', this._handleMouseEvent);
245
247
  this._deck?.finalize();
248
+ // MapLibre leaves removing the element to the control. A canvas that Deck does not own, such
249
+ // as the `device` prop's, would otherwise stay in this container and stop resizing with the map.
250
+ this._container?.remove();
246
251
  }
247
252
 
248
253
  private _onRemoveInterleaved(map: MapLibreMap): void {
249
254
  map.off('styledata', this._handleStyleChange);
255
+ map.off('sourcedata', this._handleSourceData);
256
+ const appliedLayers = this._appliedLayers ?? this._props.layers;
257
+ this._appliedLayers = undefined;
250
258
  try {
251
- resolveMapLibreLayerGroups(map, this._props.layers, []);
259
+ resolveMapLibreLayerGroups(map, appliedLayers, []);
252
260
  } finally {
253
261
  removeMapLibreDeckInstance(map);
254
262
  }
255
263
  }
256
264
 
265
+ /** Resolves layer groups now, or once the style and its sources finish loading. */
266
+ private _resolveLayerGroups(oldLayers?: LayersList, newLayers?: LayersList): void {
267
+ const map = this._map;
268
+ if (!map) {
269
+ return;
270
+ }
271
+
272
+ map.off('sourcedata', this._handleSourceData);
273
+ if (map.isStyleLoaded()) {
274
+ resolveMapLibreLayerGroups(map, this._appliedLayers ?? oldLayers, newLayers);
275
+ this._appliedLayers = undefined;
276
+ } else {
277
+ // `map.isStyleLoaded()` also waits for sources and tiles, so the last `styledata` event can
278
+ // fire before layer groups can be added. Retry once a `sourcedata` event finds it loaded.
279
+ this._appliedLayers ??= oldLayers;
280
+ map.on('sourcedata', this._handleSourceData);
281
+ }
282
+ }
283
+
284
+ private _handleSourceData = () => {
285
+ if (this._map?.isStyleLoaded()) {
286
+ this._resolveLayerGroups(this._props.layers, this._props.layers);
287
+ }
288
+ };
289
+
257
290
  private _handleStyleChange = () => {
258
- resolveMapLibreLayerGroups(this._map, this._props.layers, this._props.layers);
291
+ this._resolveLayerGroups(this._props.layers, this._props.layers);
259
292
  if (!this._map) {
260
293
  return;
261
294
  }