@vcmap/core 6.3.2 → 6.3.3

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.
Files changed (64) hide show
  1. package/dist/index.d.ts +5 -2
  2. package/dist/index.js +4 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/interaction/panoramaFeatureHighlight.d.ts +1 -0
  5. package/dist/src/interaction/panoramaFeatureHighlight.js +18 -11
  6. package/dist/src/interaction/panoramaFeatureHighlight.js.map +1 -1
  7. package/dist/src/interaction/panoramaImageSelection.js +46 -2
  8. package/dist/src/interaction/panoramaImageSelection.js.map +1 -1
  9. package/dist/src/layer/cesium/cogCesiumImpl.js +1 -1
  10. package/dist/src/layer/cesium/cogCesiumImpl.js.map +1 -1
  11. package/dist/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.d.ts +47 -0
  12. package/dist/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.js +71 -0
  13. package/dist/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.js.map +1 -0
  14. package/dist/src/layer/cesium/imageryProvider/cogImageryProvider.d.ts +17 -0
  15. package/dist/src/layer/cesium/{cogImageryProvider.js → imageryProvider/cogImageryProvider.js} +17 -67
  16. package/dist/src/layer/cesium/imageryProvider/cogImageryProvider.js.map +1 -0
  17. package/dist/src/layer/cesium/{mapboxStyleImageryProvider.d.ts → imageryProvider/mapboxStyleImageryProvider.d.ts} +5 -9
  18. package/dist/src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.js +37 -0
  19. package/dist/src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.js.map +1 -0
  20. package/dist/src/layer/cesium/imageryProvider/olImageRenderer.d.ts +18 -0
  21. package/dist/src/layer/cesium/imageryProvider/olImageRenderer.js +144 -0
  22. package/dist/src/layer/cesium/imageryProvider/olImageRenderer.js.map +1 -0
  23. package/dist/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.d.ts +12 -0
  24. package/dist/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.js +45 -0
  25. package/dist/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.js.map +1 -0
  26. package/dist/src/layer/cesium/{vectorTileImageryProvider.d.ts → imageryProvider/vectorTileImageryProvider.d.ts} +5 -24
  27. package/dist/src/layer/cesium/{vectorTileImageryProvider.js → imageryProvider/vectorTileImageryProvider.js} +16 -65
  28. package/dist/src/layer/cesium/imageryProvider/vectorTileImageryProvider.js.map +1 -0
  29. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.d.ts +1 -1
  30. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js +1 -1
  31. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js.map +1 -1
  32. package/dist/src/layer/cesium/panoramaDatasetCesiumImpl.d.ts +5 -0
  33. package/dist/src/layer/cesium/panoramaDatasetCesiumImpl.js +12 -0
  34. package/dist/src/layer/cesium/panoramaDatasetCesiumImpl.js.map +1 -0
  35. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.d.ts +4 -2
  36. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +10 -3
  37. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  38. package/dist/src/layer/panoramaDatasetLayer.js +11 -1
  39. package/dist/src/layer/panoramaDatasetLayer.js.map +1 -1
  40. package/dist/src/layer/vectorTileLayer.d.ts +1 -0
  41. package/dist/src/layer/vectorTileLayer.js +3 -0
  42. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  43. package/index.ts +11 -2
  44. package/package.json +1 -1
  45. package/src/interaction/panoramaFeatureHighlight.ts +23 -16
  46. package/src/interaction/panoramaImageSelection.ts +58 -5
  47. package/src/layer/cesium/cogCesiumImpl.ts +1 -1
  48. package/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.ts +126 -0
  49. package/src/layer/cesium/{cogImageryProvider.ts → imageryProvider/cogImageryProvider.ts} +23 -81
  50. package/src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.ts +63 -0
  51. package/src/layer/cesium/imageryProvider/olImageRenderer.ts +219 -0
  52. package/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.ts +73 -0
  53. package/src/layer/cesium/{vectorTileImageryProvider.ts → imageryProvider/vectorTileImageryProvider.ts} +19 -92
  54. package/src/layer/cesium/mapboxStyleCesiumImpl.ts +1 -1
  55. package/src/layer/cesium/panoramaDatasetCesiumImpl.ts +13 -0
  56. package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +14 -4
  57. package/src/layer/panoramaDatasetLayer.ts +12 -1
  58. package/src/layer/vectorTileLayer.ts +4 -0
  59. package/dist/src/layer/cesium/cogImageryProvider.d.ts +0 -31
  60. package/dist/src/layer/cesium/cogImageryProvider.js.map +0 -1
  61. package/dist/src/layer/cesium/mapboxStyleImageryProvider.js +0 -147
  62. package/dist/src/layer/cesium/mapboxStyleImageryProvider.js.map +0 -1
  63. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +0 -1
  64. package/src/layer/cesium/mapboxStyleImageryProvider.ts +0 -214
@@ -0,0 +1,37 @@
1
+ import { createOLImageRenderer, } from './olImageRenderer.js';
2
+ import AbstractVcsImageryProvider from './abstractVcsImageryProvider.js';
3
+ /**
4
+ * Implementation of Cesium ImageryProvider Interface for Mapbox Style Tiles
5
+ */
6
+ class MapboxStyleImageryProvider extends AbstractVcsImageryProvider {
7
+ static get className() {
8
+ return 'MapboxStyleImageryProvider';
9
+ }
10
+ tileProvider;
11
+ _olImageRenderer;
12
+ constructor(options) {
13
+ super({
14
+ tilingScheme: options.tileProvider.tilingScheme,
15
+ tileSize: options.tileSize,
16
+ minLevel: 0,
17
+ maxLevel: 26,
18
+ });
19
+ this.tileProvider = options.tileProvider;
20
+ this._olImageRenderer = createOLImageRenderer({
21
+ tilingScheme: this.tileProvider.tilingScheme,
22
+ tileWidth: this.tileWidth,
23
+ tileHeight: this.tileHeight,
24
+ tileCacheSize: options.tileCacheSize,
25
+ emptyCanvas: this.emptyCanvas,
26
+ });
27
+ this._olImageRenderer.map.addLayer(options.styledMapboxLayerGroup);
28
+ }
29
+ requestImage(x, y, level) {
30
+ return this._olImageRenderer.requestImage(x, y, level);
31
+ }
32
+ destroy() {
33
+ this._olImageRenderer.destroy();
34
+ }
35
+ }
36
+ export default MapboxStyleImageryProvider;
37
+ //# sourceMappingURL=mapboxStyleImageryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapboxStyleImageryProvider.js","sourceRoot":"","sources":["../../../../../src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AAWzE;;GAEG;AACH,MAAM,0BAA2B,SAAQ,0BAA0B;IACjE,MAAM,KAAK,SAAS;QAClB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,YAAY,CAAe;IAEnB,gBAAgB,CAAkB;IAE1C,YAAY,OAA0C;QACpD,KAAK,CAAC;YACJ,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY;YAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAEzC,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrE,CAAC;IAED,YAAY,CACV,CAAS,EACT,CAAS,EACT,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;CACF;AAED,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { TilingScheme } from '@vcmap-cesium/engine';
2
+ import OLMap from 'ol/Map.js';
3
+ import { type Extent } from 'ol/extent.js';
4
+ export type OLImageRenderer = {
5
+ readonly isRendering: boolean;
6
+ readonly map: OLMap;
7
+ requestImage(x: number, y: number, level: number): Promise<HTMLImageElement | HTMLCanvasElement> | undefined;
8
+ destroy(): void;
9
+ };
10
+ export type OLImageRendererOptions = {
11
+ tilingScheme: TilingScheme;
12
+ tileWidth: number;
13
+ tileHeight: number;
14
+ emptyCanvas: HTMLCanvasElement;
15
+ tileCacheSize?: number;
16
+ fetchFeatures?: (x: number, y: number, level: number, extent: Extent) => Promise<void>;
17
+ };
18
+ export declare function createOLImageRenderer(options: OLImageRendererOptions): OLImageRenderer;
@@ -0,0 +1,144 @@
1
+ import OLMap from 'ol/Map.js';
2
+ import LRUCache from 'ol/structs/LRUCache.js';
3
+ import { buffer, getCenter } from 'ol/extent.js';
4
+ import { getLogger } from '@vcsuite/logger';
5
+ import { parseInteger } from '@vcsuite/parsers';
6
+ import { rectangleToMercatorExtent } from '../../../util/math.js';
7
+ function getTileCacheKey(x, y, level) {
8
+ return `${x}-${y}-${level}`;
9
+ }
10
+ function getGutterSize(level) {
11
+ if (level < 12) {
12
+ return 32;
13
+ }
14
+ if (level < 15) {
15
+ return 48;
16
+ }
17
+ return 64;
18
+ }
19
+ export function createOLImageRenderer(options) {
20
+ const maxCacheSize = parseInteger(options.tileCacheSize, 100);
21
+ const { tilingScheme, tileWidth, tileHeight, emptyCanvas, fetchFeatures } = options;
22
+ const renderMap = new OLMap({
23
+ target: document.createElement('div'),
24
+ });
25
+ const tileCacheByLevel = new Map();
26
+ let isRendering = false;
27
+ function getLevelCache(level) {
28
+ const existing = tileCacheByLevel.get(level);
29
+ if (existing) {
30
+ return existing;
31
+ }
32
+ const cache = new LRUCache(maxCacheSize);
33
+ tileCacheByLevel.set(level, cache);
34
+ return cache;
35
+ }
36
+ function renderTile(level, extent, gutterSize) {
37
+ const TIMEOUT_MS = 2500;
38
+ return new Promise((resolve) => {
39
+ let isFinished = false;
40
+ const finish = (canvas) => {
41
+ if (isFinished) {
42
+ return;
43
+ }
44
+ isFinished = true;
45
+ resolve(canvas);
46
+ };
47
+ try {
48
+ if (!renderMap) {
49
+ finish(emptyCanvas);
50
+ return;
51
+ }
52
+ const renderWidth = tileWidth + 2 * gutterSize;
53
+ const renderHeight = tileHeight + 2 * gutterSize;
54
+ const view = renderMap.getView();
55
+ view.setCenter(getCenter(extent));
56
+ view.setZoom(level);
57
+ renderMap.setSize([renderWidth, renderHeight]);
58
+ const handleRenderComplete = () => {
59
+ renderMap?.un('rendercomplete', handleRenderComplete);
60
+ const renderedCanvas = renderMap
61
+ ?.getViewport()
62
+ .querySelector('canvas');
63
+ if (!renderedCanvas) {
64
+ finish(emptyCanvas);
65
+ return;
66
+ }
67
+ // Crop the canvas to extract the center portion (original tile size)
68
+ const tileCanvas = document.createElement('canvas');
69
+ tileCanvas.width = tileWidth;
70
+ tileCanvas.height = tileHeight;
71
+ const ctx = tileCanvas.getContext('2d');
72
+ if (ctx) {
73
+ const scaleX = renderedCanvas.width / renderWidth;
74
+ const scaleY = renderedCanvas.height / renderHeight;
75
+ ctx.drawImage(renderedCanvas, gutterSize * scaleX, gutterSize * scaleY, tileWidth * scaleX, tileHeight * scaleY, 0, 0, tileWidth, tileHeight);
76
+ }
77
+ finish(tileCanvas);
78
+ };
79
+ const timeoutId = window.setTimeout(() => {
80
+ renderMap?.un('rendercomplete', handleRenderComplete);
81
+ getLogger('MapboxVectorTileImageryProvider').warning('Tile render timed out; returning empty tile.');
82
+ finish(emptyCanvas);
83
+ }, TIMEOUT_MS);
84
+ const wrappedHandleRenderComplete = () => {
85
+ window.clearTimeout(timeoutId);
86
+ handleRenderComplete();
87
+ };
88
+ renderMap.once('rendercomplete', wrappedHandleRenderComplete);
89
+ renderMap.render();
90
+ }
91
+ catch (e) {
92
+ getLogger('MapboxVectorTileImageryProvider').error(`Error rendering tile: ${e.message}`);
93
+ finish(emptyCanvas);
94
+ }
95
+ });
96
+ }
97
+ async function doRequestImage(x, y, level, cacheKey) {
98
+ const rectangle = tilingScheme.tileXYToRectangle(x, y, level);
99
+ const extent = rectangleToMercatorExtent(rectangle);
100
+ // Add gutters to prevent labels from being cut off
101
+ const gutterSize = getGutterSize(level);
102
+ const gutter = ((extent[2] - extent[0]) / tileWidth) * gutterSize;
103
+ const expandedExtent = buffer(extent, gutter);
104
+ isRendering = true;
105
+ if (fetchFeatures) {
106
+ await fetchFeatures(x, y, level, expandedExtent);
107
+ }
108
+ const renderedTile = await renderTile(level, expandedExtent, gutterSize);
109
+ isRendering = false;
110
+ const levelCache = getLevelCache(level);
111
+ levelCache.set(cacheKey, renderedTile);
112
+ levelCache.expireCache();
113
+ return renderedTile;
114
+ }
115
+ return {
116
+ get map() {
117
+ return renderMap;
118
+ },
119
+ get isRendering() {
120
+ return isRendering;
121
+ },
122
+ requestImage(x, y, level) {
123
+ const cacheKey = getTileCacheKey(x, y, level);
124
+ const levelCache = getLevelCache(level);
125
+ if (levelCache.containsKey(cacheKey)) {
126
+ return Promise.resolve(levelCache.get(cacheKey));
127
+ }
128
+ if (isRendering) {
129
+ return undefined;
130
+ }
131
+ return doRequestImage(x, y, level, cacheKey);
132
+ },
133
+ destroy() {
134
+ for (const cache of tileCacheByLevel.values()) {
135
+ cache.clear();
136
+ }
137
+ tileCacheByLevel.clear();
138
+ isRendering = false;
139
+ renderMap.setTarget(undefined);
140
+ renderMap.dispose();
141
+ },
142
+ };
143
+ }
144
+ //# sourceMappingURL=olImageRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"olImageRenderer.js","sourceRoot":"","sources":["../../../../../src/layer/cesium/imageryProvider/olImageRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type VectorTileImageryProviderOptions } from './vectorTileImageryProvider.js';
2
+ import AbstractVcsImageryProvider from './abstractVcsImageryProvider.js';
3
+ import type TileProvider from '../../tileProvider/tileProvider.js';
4
+ export default class PanoramaDatasetImageryProvider extends AbstractVcsImageryProvider {
5
+ private _source;
6
+ private _olImageRenderer;
7
+ tileProvider: TileProvider;
8
+ constructor(options: VectorTileImageryProviderOptions);
9
+ requestImage(x: number, y: number, level: number): Promise<HTMLImageElement | HTMLCanvasElement> | undefined;
10
+ private _fetchFeatures;
11
+ destroy(): void;
12
+ }
@@ -0,0 +1,45 @@
1
+ import VectorSource from 'ol/source/Vector.js';
2
+ import VectorLayer from 'ol/layer/Vector.js';
3
+ import { createOLImageRenderer, } from './olImageRenderer.js';
4
+ import Extent from '../../../util/extent.js';
5
+ import { mercatorProjection } from '../../../util/projection.js';
6
+ import AbstractVcsImageryProvider from './abstractVcsImageryProvider.js';
7
+ export default class PanoramaDatasetImageryProvider extends AbstractVcsImageryProvider {
8
+ _source = new VectorSource({ useSpatialIndex: false });
9
+ _olImageRenderer;
10
+ tileProvider;
11
+ constructor(options) {
12
+ super({
13
+ tilingScheme: options.tileProvider.tilingScheme,
14
+ tileSize: options.tileSize,
15
+ minLevel: 0,
16
+ maxLevel: 26,
17
+ });
18
+ this.tileProvider = options.tileProvider;
19
+ this._olImageRenderer = createOLImageRenderer({
20
+ tilingScheme: this.tileProvider.tilingScheme,
21
+ tileWidth: this.tileWidth,
22
+ tileHeight: this.tileHeight,
23
+ emptyCanvas: this.emptyCanvas,
24
+ fetchFeatures: this._fetchFeatures.bind(this),
25
+ });
26
+ this._olImageRenderer.map.addLayer(new VectorLayer({ source: this._source, declutter: true }));
27
+ }
28
+ requestImage(x, y, level) {
29
+ return this._olImageRenderer.requestImage(x, y, level);
30
+ }
31
+ async _fetchFeatures(_x, _y, level, extent) {
32
+ const vcsExtent = new Extent({
33
+ coordinates: extent,
34
+ projection: mercatorProjection.toJSON(),
35
+ });
36
+ const features = await this.tileProvider.getFeaturesForExtent(vcsExtent, level);
37
+ this._source.clear(true);
38
+ this._source.addFeatures(features);
39
+ }
40
+ destroy() {
41
+ this._source.dispose();
42
+ this._olImageRenderer.destroy();
43
+ }
44
+ }
45
+ //# sourceMappingURL=panoramaDatasetImageryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panoramaDatasetImageryProvider.js","sourceRoot":"","sources":["../../../../../src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AAGzE,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,0BAA0B;IAC5E,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,gBAAgB,CAAkB;IAE1C,YAAY,CAAe;IAE3B,YAAY,OAAyC;QACnD,KAAK,CAAC;YACJ,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY;YAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAEzC,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAChC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,YAAY,CACV,CAAS,EACT,CAAS,EACT,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,EAAU,EACV,EAAU,EACV,KAAa,EACb,MAAgB;QAEhB,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC;YAC3B,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE;SACxC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAC3D,SAAS,EACT,KAAK,CACN,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
- import { type Cartographic, Event as CesiumEvent, type Rectangle, type TilingScheme } from '@vcmap-cesium/engine';
1
+ import { type Cartographic } from '@vcmap-cesium/engine';
2
2
  import { type Extent } from 'ol/extent.js';
3
3
  import type { Coordinate } from 'ol/coordinate.js';
4
4
  import type { Size } from 'ol/size.js';
5
5
  import type { Feature } from 'ol/index.js';
6
- import type TileProvider from '../tileProvider/tileProvider.js';
7
- import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
6
+ import type TileProvider from '../../tileProvider/tileProvider.js';
7
+ import CanvasTileRenderer from '../../../ol/render/canvas/canvasTileRenderer.js';
8
+ import AbstractVcsImageryProvider from './abstractVcsImageryProvider.js';
8
9
  export declare function toContext(extent: Extent, center: Coordinate, context: CanvasRenderingContext2D, tileSize: Size): CanvasTileRenderer;
9
10
  /**
10
11
  * creates a canvas and draws the features on the canvas;
@@ -23,30 +24,10 @@ export type VectorTileImageryProviderOptions = {
23
24
  /**
24
25
  * implementation of Cesium ImageryProvider Interface
25
26
  */
26
- declare class VectorTileImageryProvider {
27
+ declare class VectorTileImageryProvider extends AbstractVcsImageryProvider {
27
28
  tileProvider: TileProvider;
28
- private _tilingScheme;
29
- private _tileSize;
30
- private _errorEvent;
31
- headers?: Record<string, string>;
32
- emptyCanvas: HTMLCanvasElement;
33
- minLevel: number;
34
- maxLevel: number;
35
29
  _reload: undefined | (() => void);
36
30
  constructor(options: VectorTileImageryProviderOptions);
37
- get _ready(): boolean;
38
- get ready(): boolean;
39
- get rectangle(): Rectangle;
40
- get tileWidth(): number;
41
- get tileHeight(): number;
42
- get maximumLevel(): number;
43
- get minimumLevel(): number;
44
- get tilingScheme(): TilingScheme;
45
- get tileDiscardPolicy(): undefined;
46
- get errorEvent(): CesiumEvent;
47
- get credit(): undefined;
48
- get proxy(): undefined;
49
- get hasAlphaChannel(): boolean;
50
31
  /**
51
32
  * Requests the image for a given tile. This function should
52
33
  * not be called before returns true.
@@ -1,9 +1,9 @@
1
- import { Event as CesiumEvent, } from '@vcmap-cesium/engine';
2
1
  import { getLogger } from '@vcsuite/logger';
3
2
  import { compose, create as createTransform, scale as scaleTransform, } from 'ol/transform.js';
4
3
  import { getCenter } from 'ol/extent.js';
5
- import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
6
- import { rectangleToMercatorExtent } from '../../util/math.js';
4
+ import CanvasTileRenderer from '../../../ol/render/canvas/canvasTileRenderer.js';
5
+ import { rectangleToMercatorExtent } from '../../../util/math.js';
6
+ import AbstractVcsImageryProvider from './abstractVcsImageryProvider.js';
7
7
  export function toContext(extent, center, context, tileSize) {
8
8
  const { canvas } = context;
9
9
  canvas.width = tileSize[0];
@@ -31,7 +31,7 @@ export function getCanvasFromFeatures(features, extent, deprecatedCenter, tileSi
31
31
  }
32
32
  const canvas = document.createElement('canvas');
33
33
  canvas.width = tileSize[0];
34
- canvas.height = tileSize[0];
34
+ canvas.height = tileSize[1];
35
35
  const vectorContext = toContext(extent, getCenter(extent), canvas.getContext('2d'), tileSize);
36
36
  features.forEach((feature) => {
37
37
  const styleFunction = feature.getStyleFunction();
@@ -45,71 +45,19 @@ export function getCanvasFromFeatures(features, extent, deprecatedCenter, tileSi
45
45
  /**
46
46
  * implementation of Cesium ImageryProvider Interface
47
47
  */
48
- class VectorTileImageryProvider {
48
+ class VectorTileImageryProvider extends AbstractVcsImageryProvider {
49
49
  tileProvider;
50
- _tilingScheme;
51
- _tileSize;
52
- _errorEvent = new CesiumEvent();
53
- headers;
54
- emptyCanvas;
55
- minLevel = 0;
56
- maxLevel = 26;
57
50
  // eslint-disable-next-line @typescript-eslint/naming-convention
58
51
  _reload = undefined;
59
52
  constructor(options) {
53
+ super({
54
+ tilingScheme: options.tileProvider.tilingScheme,
55
+ tileSize: options.tileSize,
56
+ headers: options.headers,
57
+ minLevel: 0,
58
+ maxLevel: 26,
59
+ });
60
60
  this.tileProvider = options.tileProvider;
61
- this._tilingScheme = this.tileProvider.tilingScheme;
62
- this._tileSize = options.tileSize;
63
- this._errorEvent = new CesiumEvent();
64
- this.emptyCanvas = document.createElement('canvas');
65
- this.emptyCanvas.width = this.tileWidth;
66
- this.emptyCanvas.height = this.tileHeight;
67
- this.headers = options.headers;
68
- }
69
- // eslint-disable-next-line class-methods-use-this,@typescript-eslint/naming-convention
70
- get _ready() {
71
- return true;
72
- }
73
- // eslint-disable-next-line class-methods-use-this
74
- get ready() {
75
- return true;
76
- }
77
- get rectangle() {
78
- return this._tilingScheme.rectangle;
79
- }
80
- get tileWidth() {
81
- return this._tileSize[0];
82
- }
83
- get tileHeight() {
84
- return this._tileSize[1];
85
- }
86
- get maximumLevel() {
87
- return this.maxLevel;
88
- }
89
- get minimumLevel() {
90
- return this.minLevel;
91
- }
92
- get tilingScheme() {
93
- return this._tilingScheme;
94
- }
95
- // eslint-disable-next-line class-methods-use-this
96
- get tileDiscardPolicy() {
97
- return undefined;
98
- }
99
- get errorEvent() {
100
- return this._errorEvent;
101
- }
102
- // eslint-disable-next-line class-methods-use-this
103
- get credit() {
104
- return undefined;
105
- }
106
- // eslint-disable-next-line class-methods-use-this
107
- get proxy() {
108
- return undefined;
109
- }
110
- // eslint-disable-next-line class-methods-use-this
111
- get hasAlphaChannel() {
112
- return true;
113
61
  }
114
62
  /**
115
63
  * Requests the image for a given tile. This function should
@@ -130,7 +78,10 @@ class VectorTileImageryProvider {
130
78
  }
131
79
  const rectangle = this.tileProvider.tilingScheme.tileXYToRectangle(x, y, level);
132
80
  const extent = rectangleToMercatorExtent(rectangle);
133
- return getCanvasFromFeatures(features, extent, undefined, this._tileSize);
81
+ return getCanvasFromFeatures(features, extent, undefined, [
82
+ this.tileWidth,
83
+ this.tileHeight,
84
+ ]);
134
85
  }
135
86
  }
136
87
  export default VectorTileImageryProvider;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectorTileImageryProvider.js","sourceRoot":"","sources":["../../../../../src/layer/cesium/imageryProvider/vectorTileImageryProvider.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { SplitDirection } from '@vcmap-cesium/engine';
3
3
  import type LayerGroup from 'ol/layer/Group.js';
4
4
  import type BaseCesiumMap from '../../map/baseCesiumMap.js';
5
5
  import type { LayerImplementationOptions } from '../layer.js';
6
- import MapboxStyleImageryProvider from './mapboxStyleImageryProvider.js';
6
+ import MapboxStyleImageryProvider from './imageryProvider/mapboxStyleImageryProvider.js';
7
7
  import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
8
8
  export type MapboxStyleLayerImplementationOptions = LayerImplementationOptions & {
9
9
  styledMapboxLayerGroup: LayerGroup;
@@ -2,7 +2,7 @@ import { ImageryLayer as CesiumImageryLayer, Rectangle, } from '@vcmap-cesium/en
2
2
  import { wgs84Projection } from '../../util/projection.js';
3
3
  import { TilingScheme } from '../rasterLayer.js';
4
4
  import TileProvider from '../tileProvider/tileProvider.js';
5
- import MapboxStyleImageryProvider from './mapboxStyleImageryProvider.js';
5
+ import MapboxStyleImageryProvider from './imageryProvider/mapboxStyleImageryProvider.js';
6
6
  import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
7
7
  class MapboxStyleCesiumImpl extends RasterLayerCesiumImpl {
8
8
  static get className() {
@@ -1 +1 @@
1
- {"version":3,"file":"mapboxStyleCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/mapboxStyleCesiumImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,SAAS,GACV,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,0BAEN,MAAM,iCAAiC,CAAC;AACzC,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAU/D,MAAM,qBAAsB,SAAQ,qBAAqB;IACvD,MAAM,KAAK,SAAS;QAClB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAEO,uBAAuB,CAAa;IAE5C,iBAAiB,CAAqB;IAEtC,iBAAiB,CAAqB;IAEtC,eAAe,GAA2C,SAAS,CAAC;IAEpE,YACE,GAAkB,EAClB,OAA8C;QAE9C,KAAK,CAAC,GAAG,EAAE;YACT,GAAG,OAAO;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,YAAY,CAAC,QAAQ;YACnC,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,cAAc;QACZ,MAAM,OAAO,GAAsC;YACjD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,sBAAsB,EAAE,IAAI,CAAC,uBAAuB;YACpD,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,YAAY,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC;YAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;SACrB,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;YACvE,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAC5C,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,CACV,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO;QACpB,4BAA4B;QAC5B,IAAI,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAChC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"mapboxStyleCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/mapboxStyleCesiumImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,SAAS,GACV,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,0BAEN,MAAM,iDAAiD,CAAC;AACzD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAU/D,MAAM,qBAAsB,SAAQ,qBAAqB;IACvD,MAAM,KAAK,SAAS;QAClB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAEO,uBAAuB,CAAa;IAE5C,iBAAiB,CAAqB;IAEtC,iBAAiB,CAAqB;IAEtC,eAAe,GAA2C,SAAS,CAAC;IAEpE,YACE,GAAkB,EAClB,OAA8C;QAE9C,KAAK,CAAC,GAAG,EAAE;YACT,GAAG,OAAO;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,YAAY,CAAC,QAAQ;YACnC,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,cAAc;QACZ,MAAM,OAAO,GAAsC;YACjD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,sBAAsB,EAAE,IAAI,CAAC,uBAAuB;YACpD,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,YAAY,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC;YAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;SACrB,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;YACvE,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAC5C,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,CACV,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO;QACpB,4BAA4B;QAC5B,IAAI,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAChC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import VectorRasterTileCesiumImpl from './vectorRasterTileCesiumImpl.js';
2
+ import type AbstractVcsImageryProvider from './imageryProvider/abstractVcsImageryProvider.js';
3
+ export default class PanoramaDatasetCesiumImpl extends VectorRasterTileCesiumImpl {
4
+ protected _getImageryProvider(): AbstractVcsImageryProvider;
5
+ }
@@ -0,0 +1,12 @@
1
+ import VectorRasterTileCesiumImpl from './vectorRasterTileCesiumImpl.js';
2
+ import PanoramaDatasetImageryProvider from './imageryProvider/panoramaDatasetImageryProvider.js';
3
+ export default class PanoramaDatasetCesiumImpl extends VectorRasterTileCesiumImpl {
4
+ _getImageryProvider() {
5
+ return new PanoramaDatasetImageryProvider({
6
+ tileProvider: this.tileProvider,
7
+ tileSize: this.tileSize,
8
+ headers: this.headers,
9
+ });
10
+ }
11
+ }
12
+ //# sourceMappingURL=panoramaDatasetCesiumImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panoramaDatasetCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/panoramaDatasetCesiumImpl.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,8BAA8B,MAAM,qDAAqD,CAAC;AAGjG,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,0BAA0B;IACrE,mBAAmB;QAC3B,OAAO,IAAI,8BAA8B,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import { ImageryLayer as CesiumImageryLayer } from '@vcmap-cesium/engine';
2
2
  import type { Size } from 'ol/size.js';
3
- import VectorTileImageryProvider from './vectorTileImageryProvider.js';
4
3
  import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
5
4
  import type { VectorTileImplementationOptions } from '../vectorTileLayer.js';
6
5
  import type CesiumMap from '../../map/cesiumMap.js';
7
6
  import type TileProvider from '../tileProvider/tileProvider.js';
8
7
  import type StyleItem from '../../style/styleItem.js';
8
+ import type AbstractVcsImageryProvider from './imageryProvider/abstractVcsImageryProvider.js';
9
9
  /**
10
10
  * represents a rasterized tiled vector layer implementation for cesium.
11
11
  */
@@ -14,8 +14,9 @@ declare class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
14
14
  tileProvider: TileProvider;
15
15
  tileSize: Size;
16
16
  private _reloadTimeout;
17
- imageryProvider: undefined | VectorTileImageryProvider;
17
+ imageryProvider: undefined | AbstractVcsImageryProvider;
18
18
  constructor(map: CesiumMap, options: VectorTileImplementationOptions);
19
+ protected _getImageryProvider(): AbstractVcsImageryProvider;
19
20
  getCesiumLayer(): Promise<CesiumImageryLayer>;
20
21
  /**
21
22
  * reloads the tiles
@@ -27,5 +28,6 @@ declare class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
27
28
  */
28
29
  updateTiles(tileIds: string[]): void;
29
30
  updateStyle(_style: StyleItem, _silent?: boolean): void;
31
+ destroy(): void;
30
32
  }
31
33
  export default VectorRasterTileCesiumImpl;
@@ -1,5 +1,5 @@
1
1
  import { ImageryLayer as CesiumImageryLayer, Rectangle, } from '@vcmap-cesium/engine';
2
- import VectorTileImageryProvider from './vectorTileImageryProvider.js';
2
+ import VectorTileImageryProvider from './imageryProvider/vectorTileImageryProvider.js';
3
3
  import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
4
4
  import { wgs84Projection } from '../../util/projection.js';
5
5
  import { TilingScheme, } from '../rasterLayer.js';
@@ -30,12 +30,15 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
30
30
  this.tileProvider = options.tileProvider;
31
31
  this.tileSize = options.tileSize;
32
32
  }
33
- getCesiumLayer() {
34
- this.imageryProvider = new VectorTileImageryProvider({
33
+ _getImageryProvider() {
34
+ return new VectorTileImageryProvider({
35
35
  tileProvider: this.tileProvider,
36
36
  tileSize: this.tileSize,
37
37
  headers: this.headers,
38
38
  });
39
+ }
40
+ getCesiumLayer() {
41
+ this.imageryProvider = this._getImageryProvider();
39
42
  const layerOptions = this.getCesiumLayerOptions();
40
43
  if (this.extent && this.extent.isValid()) {
41
44
  const extent = this.extent.getCoordinatesInProjection(wgs84Projection);
@@ -74,6 +77,10 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
74
77
  updateStyle(_style, _silent) {
75
78
  this._reloadTiles();
76
79
  }
80
+ destroy() {
81
+ this.imageryProvider?.destroy();
82
+ super.destroy();
83
+ }
77
84
  }
78
85
  export default VectorRasterTileCesiumImpl;
79
86
  //# sourceMappingURL=vectorRasterTileCesiumImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vectorRasterTileCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/vectorRasterTileCesiumImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AACvE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAEL,YAAY,GACb,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,MAAM,0BAA2B,SAAQ,qBAAqB;IAC5D,MAAM,KAAK,SAAS;QAClB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,YAAY,CAAe;IAE3B,QAAQ,CAAO;IAEP,cAAc,GAAuB,SAAS,CAAC;IAEvD,eAAe,GAA0C,SAAS,CAAC;IAEnE,YAAY,GAAc,EAAE,OAAwC;QAClE,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3C,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3C,MAAM,kBAAkB,GAAqC;YAC3D,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,CAAC;YACX,GAAG,OAAO;YACV,iBAAiB;YACjB,iBAAiB;YACjB,YAAY,EAAE,YAAY,CAAC,QAAQ;YACnC,OAAO,EAAE,CAAC;SACX,CAAC;QACF,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAyB,CAAC;YACnD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;YACvE,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAC5C,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,CACV,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,kBAAkB;QACpB,6DAA6D;QAC7D,aAAa;QACb,IAAI,CAAC,eAAe,EACpB,YAAY,CACb,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,gDAAgD;QAChD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YACzD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC3C,2CAA2C;gBAC3C,gDAAgD;gBAChD,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,OAAiB;QAC3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,WAAW,CAAC,MAAiB,EAAE,OAAiB;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"vectorRasterTileCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/vectorRasterTileCesiumImpl.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ import { createPanoramaImageFromURL, } from '../panorama/panoramaImage.js';
13
13
  import Extent from '../util/extent.js';
14
14
  import { cartesian2DDistanceSquared } from '../util/math.js';
15
15
  import { getStyleOrDefaultStyle } from '../style/styleFactory.js';
16
+ import CesiumMap from '../map/cesiumMap.js';
17
+ import VectorTileCesiumImpl from './cesium/vectorTileCesiumImpl.js';
18
+ import PanoramaDatasetCesiumImpl from './cesium/panoramaDatasetCesiumImpl.js';
16
19
  export default class PanoramaDatasetLayer extends VectorTileLayer {
17
20
  static get className() {
18
21
  return 'PanoramaDatasetLayer';
@@ -24,7 +27,7 @@ export default class PanoramaDatasetLayer extends VectorTileLayer {
24
27
  baseLevel: 15,
25
28
  cameraOffset: 0,
26
29
  minLevel: 15,
27
- maxLevel: 22,
30
+ maxLevel: undefined,
28
31
  zIndex: maxZIndexMin50,
29
32
  ignoreMapLayerTypes: true,
30
33
  panoramaVectorProperties: {
@@ -128,6 +131,13 @@ export default class PanoramaDatasetLayer extends VectorTileLayer {
128
131
  }),
129
132
  ];
130
133
  }
134
+ if (map instanceof CesiumMap) {
135
+ return [
136
+ this.renderer === 'image'
137
+ ? new PanoramaDatasetCesiumImpl(map, this.getImplementationOptions())
138
+ : new VectorTileCesiumImpl(map, this.getImplementationOptions()),
139
+ ];
140
+ }
131
141
  return super.createImplementationsForMap(map);
132
142
  }
133
143
  /**