@vcmap/core 6.3.2 → 6.3.4

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 (74) 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/cesium/wallpaperMaterial.js +2 -2
  5. package/dist/src/cesium/wallpaperMaterial.js.map +1 -1
  6. package/dist/src/featureProvider/mapboxFeatureProvider.d.ts +1 -1
  7. package/dist/src/featureProvider/mapboxFeatureProvider.js +10 -1
  8. package/dist/src/featureProvider/mapboxFeatureProvider.js.map +1 -1
  9. package/dist/src/interaction/panoramaFeatureHighlight.d.ts +1 -0
  10. package/dist/src/interaction/panoramaFeatureHighlight.js +18 -11
  11. package/dist/src/interaction/panoramaFeatureHighlight.js.map +1 -1
  12. package/dist/src/interaction/panoramaImageSelection.js +46 -2
  13. package/dist/src/interaction/panoramaImageSelection.js.map +1 -1
  14. package/dist/src/layer/cesium/cogCesiumImpl.js +1 -1
  15. package/dist/src/layer/cesium/cogCesiumImpl.js.map +1 -1
  16. package/dist/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.d.ts +47 -0
  17. package/dist/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.js +71 -0
  18. package/dist/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.js.map +1 -0
  19. package/dist/src/layer/cesium/imageryProvider/cogImageryProvider.d.ts +17 -0
  20. package/dist/src/layer/cesium/{cogImageryProvider.js → imageryProvider/cogImageryProvider.js} +17 -67
  21. package/dist/src/layer/cesium/imageryProvider/cogImageryProvider.js.map +1 -0
  22. package/dist/src/layer/cesium/{mapboxStyleImageryProvider.d.ts → imageryProvider/mapboxStyleImageryProvider.d.ts} +5 -9
  23. package/dist/src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.js +37 -0
  24. package/dist/src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.js.map +1 -0
  25. package/dist/src/layer/cesium/imageryProvider/olImageRenderer.d.ts +18 -0
  26. package/dist/src/layer/cesium/imageryProvider/olImageRenderer.js +144 -0
  27. package/dist/src/layer/cesium/imageryProvider/olImageRenderer.js.map +1 -0
  28. package/dist/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.d.ts +12 -0
  29. package/dist/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.js +45 -0
  30. package/dist/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.js.map +1 -0
  31. package/dist/src/layer/cesium/{vectorTileImageryProvider.d.ts → imageryProvider/vectorTileImageryProvider.d.ts} +5 -24
  32. package/dist/src/layer/cesium/{vectorTileImageryProvider.js → imageryProvider/vectorTileImageryProvider.js} +16 -65
  33. package/dist/src/layer/cesium/imageryProvider/vectorTileImageryProvider.js.map +1 -0
  34. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.d.ts +1 -1
  35. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js +1 -1
  36. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js.map +1 -1
  37. package/dist/src/layer/cesium/panoramaDatasetCesiumImpl.d.ts +5 -0
  38. package/dist/src/layer/cesium/panoramaDatasetCesiumImpl.js +12 -0
  39. package/dist/src/layer/cesium/panoramaDatasetCesiumImpl.js.map +1 -0
  40. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.d.ts +4 -2
  41. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +10 -3
  42. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  43. package/dist/src/layer/mapboxStyleLayer.js +27 -0
  44. package/dist/src/layer/mapboxStyleLayer.js.map +1 -1
  45. package/dist/src/layer/panoramaDatasetLayer.js +11 -1
  46. package/dist/src/layer/panoramaDatasetLayer.js.map +1 -1
  47. package/dist/src/layer/vectorTileLayer.d.ts +1 -0
  48. package/dist/src/layer/vectorTileLayer.js +3 -0
  49. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  50. package/index.ts +11 -2
  51. package/package.json +6 -3
  52. package/src/cesium/wallpaperMaterial.js +2 -2
  53. package/src/featureProvider/mapboxFeatureProvider.ts +15 -2
  54. package/src/interaction/panoramaFeatureHighlight.ts +23 -16
  55. package/src/interaction/panoramaImageSelection.ts +58 -5
  56. package/src/layer/cesium/cogCesiumImpl.ts +1 -1
  57. package/src/layer/cesium/imageryProvider/abstractVcsImageryProvider.ts +126 -0
  58. package/src/layer/cesium/{cogImageryProvider.ts → imageryProvider/cogImageryProvider.ts} +23 -81
  59. package/src/layer/cesium/imageryProvider/mapboxStyleImageryProvider.ts +63 -0
  60. package/src/layer/cesium/imageryProvider/olImageRenderer.ts +219 -0
  61. package/src/layer/cesium/imageryProvider/panoramaDatasetImageryProvider.ts +73 -0
  62. package/src/layer/cesium/{vectorTileImageryProvider.ts → imageryProvider/vectorTileImageryProvider.ts} +19 -92
  63. package/src/layer/cesium/mapboxStyleCesiumImpl.ts +1 -1
  64. package/src/layer/cesium/panoramaDatasetCesiumImpl.ts +13 -0
  65. package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +14 -4
  66. package/src/layer/mapboxStyleLayer.ts +42 -2
  67. package/src/layer/panoramaDatasetLayer.ts +12 -1
  68. package/src/layer/vectorTileLayer.ts +4 -0
  69. package/dist/src/layer/cesium/cogImageryProvider.d.ts +0 -31
  70. package/dist/src/layer/cesium/cogImageryProvider.js.map +0 -1
  71. package/dist/src/layer/cesium/mapboxStyleImageryProvider.js +0 -147
  72. package/dist/src/layer/cesium/mapboxStyleImageryProvider.js.map +0 -1
  73. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +0 -1
  74. package/src/layer/cesium/mapboxStyleImageryProvider.ts +0 -214
@@ -1,9 +1,4 @@
1
- import {
2
- type Cartographic,
3
- Event as CesiumEvent,
4
- type Rectangle,
5
- type TilingScheme,
6
- } from '@vcmap-cesium/engine';
1
+ import { type Cartographic } from '@vcmap-cesium/engine';
7
2
  import { getLogger } from '@vcsuite/logger';
8
3
  import {
9
4
  compose,
@@ -16,9 +11,10 @@ import type { Size } from 'ol/size.js';
16
11
  import type { Feature } from 'ol/index.js';
17
12
  // eslint-disable-next-line import/no-named-default
18
13
  import type { default as Style, StyleFunction } from 'ol/style/Style.js';
19
- import type TileProvider from '../tileProvider/tileProvider.js';
20
- import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
21
- import { rectangleToMercatorExtent } from '../../util/math.js';
14
+ import type TileProvider from '../../tileProvider/tileProvider.js';
15
+ import CanvasTileRenderer from '../../../ol/render/canvas/canvasTileRenderer.js';
16
+ import { rectangleToMercatorExtent } from '../../../util/math.js';
17
+ import AbstractVcsImageryProvider from './abstractVcsImageryProvider.js';
22
18
 
23
19
  export function toContext(
24
20
  extent: Extent,
@@ -80,7 +76,7 @@ export function getCanvasFromFeatures(
80
76
  }
81
77
  const canvas = document.createElement('canvas');
82
78
  canvas.width = tileSize[0];
83
- canvas.height = tileSize[0];
79
+ canvas.height = tileSize[1];
84
80
  const vectorContext = toContext(
85
81
  extent,
86
82
  getCenter(extent),
@@ -108,94 +104,21 @@ export type VectorTileImageryProviderOptions = {
108
104
  /**
109
105
  * implementation of Cesium ImageryProvider Interface
110
106
  */
111
- class VectorTileImageryProvider {
107
+ class VectorTileImageryProvider extends AbstractVcsImageryProvider {
112
108
  tileProvider: TileProvider;
113
109
 
114
- private _tilingScheme: TilingScheme;
115
-
116
- private _tileSize: Size;
117
-
118
- private _errorEvent = new CesiumEvent();
119
-
120
- headers?: Record<string, string>;
121
-
122
- emptyCanvas: HTMLCanvasElement;
123
-
124
- minLevel = 0;
125
-
126
- maxLevel = 26;
127
-
128
110
  // eslint-disable-next-line @typescript-eslint/naming-convention
129
111
  _reload: undefined | (() => void) = undefined;
130
112
 
131
113
  constructor(options: VectorTileImageryProviderOptions) {
114
+ super({
115
+ tilingScheme: options.tileProvider.tilingScheme,
116
+ tileSize: options.tileSize,
117
+ headers: options.headers,
118
+ minLevel: 0,
119
+ maxLevel: 26,
120
+ });
132
121
  this.tileProvider = options.tileProvider;
133
- this._tilingScheme = this.tileProvider.tilingScheme;
134
- this._tileSize = options.tileSize;
135
- this._errorEvent = new CesiumEvent();
136
-
137
- this.emptyCanvas = document.createElement('canvas');
138
- this.emptyCanvas.width = this.tileWidth;
139
- this.emptyCanvas.height = this.tileHeight;
140
- this.headers = options.headers;
141
- }
142
-
143
- // eslint-disable-next-line class-methods-use-this,@typescript-eslint/naming-convention
144
- get _ready(): boolean {
145
- return true;
146
- }
147
-
148
- // eslint-disable-next-line class-methods-use-this
149
- get ready(): boolean {
150
- return true;
151
- }
152
-
153
- get rectangle(): Rectangle {
154
- return this._tilingScheme.rectangle;
155
- }
156
-
157
- get tileWidth(): number {
158
- return this._tileSize[0];
159
- }
160
-
161
- get tileHeight(): number {
162
- return this._tileSize[1];
163
- }
164
-
165
- get maximumLevel(): number {
166
- return this.maxLevel;
167
- }
168
-
169
- get minimumLevel(): number {
170
- return this.minLevel;
171
- }
172
-
173
- get tilingScheme(): TilingScheme {
174
- return this._tilingScheme;
175
- }
176
-
177
- // eslint-disable-next-line class-methods-use-this
178
- get tileDiscardPolicy(): undefined {
179
- return undefined;
180
- }
181
-
182
- get errorEvent(): CesiumEvent {
183
- return this._errorEvent;
184
- }
185
-
186
- // eslint-disable-next-line class-methods-use-this
187
- get credit(): undefined {
188
- return undefined;
189
- }
190
-
191
- // eslint-disable-next-line class-methods-use-this
192
- get proxy(): undefined {
193
- return undefined;
194
- }
195
-
196
- // eslint-disable-next-line class-methods-use-this
197
- get hasAlphaChannel(): boolean {
198
- return true;
199
122
  }
200
123
 
201
124
  /**
@@ -231,7 +154,11 @@ class VectorTileImageryProvider {
231
154
  level,
232
155
  );
233
156
  const extent = rectangleToMercatorExtent(rectangle);
234
- return getCanvasFromFeatures(features, extent, undefined, this._tileSize);
157
+
158
+ return getCanvasFromFeatures(features, extent, undefined, [
159
+ this.tileWidth,
160
+ this.tileHeight,
161
+ ]);
235
162
  }
236
163
  }
237
164
 
@@ -11,7 +11,7 @@ import type { LayerImplementationOptions } from '../layer.js';
11
11
  import TileProvider from '../tileProvider/tileProvider.js';
12
12
  import MapboxStyleImageryProvider, {
13
13
  type MapboxStyleImageryProviderOptions,
14
- } from './mapboxStyleImageryProvider.js';
14
+ } from './imageryProvider/mapboxStyleImageryProvider.js';
15
15
  import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
16
16
 
17
17
  export type MapboxStyleLayerImplementationOptions =
@@ -0,0 +1,13 @@
1
+ import VectorRasterTileCesiumImpl from './vectorRasterTileCesiumImpl.js';
2
+ import PanoramaDatasetImageryProvider from './imageryProvider/panoramaDatasetImageryProvider.js';
3
+ import type AbstractVcsImageryProvider from './imageryProvider/abstractVcsImageryProvider.js';
4
+
5
+ export default class PanoramaDatasetCesiumImpl extends VectorRasterTileCesiumImpl {
6
+ protected _getImageryProvider(): AbstractVcsImageryProvider {
7
+ return new PanoramaDatasetImageryProvider({
8
+ tileProvider: this.tileProvider,
9
+ tileSize: this.tileSize,
10
+ headers: this.headers,
11
+ });
12
+ }
13
+ }
@@ -4,7 +4,7 @@ import {
4
4
  } from '@vcmap-cesium/engine';
5
5
  import type { Size } from 'ol/size.js';
6
6
 
7
- import VectorTileImageryProvider from './vectorTileImageryProvider.js';
7
+ import VectorTileImageryProvider from './imageryProvider/vectorTileImageryProvider.js';
8
8
  import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
9
9
  import { wgs84Projection } from '../../util/projection.js';
10
10
  import type { VectorTileImplementationOptions } from '../vectorTileLayer.js';
@@ -15,6 +15,7 @@ import {
15
15
  } from '../rasterLayer.js';
16
16
  import type TileProvider from '../tileProvider/tileProvider.js';
17
17
  import type StyleItem from '../../style/styleItem.js';
18
+ import type AbstractVcsImageryProvider from './imageryProvider/abstractVcsImageryProvider.js';
18
19
 
19
20
  /**
20
21
  * represents a rasterized tiled vector layer implementation for cesium.
@@ -30,7 +31,7 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
30
31
 
31
32
  private _reloadTimeout: number | undefined = undefined;
32
33
 
33
- imageryProvider: undefined | VectorTileImageryProvider = undefined;
34
+ imageryProvider: undefined | AbstractVcsImageryProvider = undefined;
34
35
 
35
36
  constructor(map: CesiumMap, options: VectorTileImplementationOptions) {
36
37
  const minRenderingLevel = options.minLevel;
@@ -49,12 +50,16 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
49
50
  this.tileSize = options.tileSize;
50
51
  }
51
52
 
52
- getCesiumLayer(): Promise<CesiumImageryLayer> {
53
- this.imageryProvider = new VectorTileImageryProvider({
53
+ protected _getImageryProvider(): AbstractVcsImageryProvider {
54
+ return new VectorTileImageryProvider({
54
55
  tileProvider: this.tileProvider,
55
56
  tileSize: this.tileSize,
56
57
  headers: this.headers,
57
58
  });
59
+ }
60
+
61
+ getCesiumLayer(): Promise<CesiumImageryLayer> {
62
+ this.imageryProvider = this._getImageryProvider();
58
63
 
59
64
  const layerOptions = this.getCesiumLayerOptions();
60
65
  if (this.extent && this.extent.isValid()) {
@@ -106,6 +111,11 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
106
111
  updateStyle(_style: StyleItem, _silent?: boolean): void {
107
112
  this._reloadTiles();
108
113
  }
114
+
115
+ destroy(): void {
116
+ this.imageryProvider?.destroy();
117
+ super.destroy();
118
+ }
109
119
  }
110
120
 
111
121
  export default VectorRasterTileCesiumImpl;
@@ -7,8 +7,12 @@ import type BaseLayer from 'ol/layer/Base.js';
7
7
  import { apply } from 'ol-mapbox-style';
8
8
  import { layerClassRegistry } from '../classRegistry.js';
9
9
  import AbstractAttributeProvider from '../featureProvider/abstractAttributeProvider.js';
10
- import CompositeFeatureProvider from '../featureProvider/compositeFeatureProvider.js';
11
- import MapboxFeatureProvider from '../featureProvider/mapboxFeatureProvider.js';
10
+ import CompositeFeatureProvider, {
11
+ type CompositeFeatureProviderOptions,
12
+ } from '../featureProvider/compositeFeatureProvider.js';
13
+ import MapboxFeatureProvider, {
14
+ type MapboxFeatureProviderOptions,
15
+ } from '../featureProvider/mapboxFeatureProvider.js';
12
16
  import type VcsMap from '../map/vcsMap.js';
13
17
  import BaseCesiumMap from '../map/baseCesiumMap.js';
14
18
  import CesiumMap from '../map/cesiumMap.js';
@@ -205,6 +209,42 @@ class MapboxStyleLayer
205
209
  ): MapboxStyleOptions {
206
210
  const config: MapboxStyleOptions = { ...super.toJSON() };
207
211
 
212
+ if (
213
+ (config.featureProvider as MapboxFeatureProviderOptions)?.type ===
214
+ MapboxFeatureProvider.className
215
+ ) {
216
+ delete config.featureProvider;
217
+ } else if (
218
+ (config.featureProvider as CompositeFeatureProviderOptions)?.type ===
219
+ CompositeFeatureProvider.className
220
+ ) {
221
+ const compositeConfig =
222
+ config.featureProvider as CompositeFeatureProviderOptions;
223
+ const featureProviders = (compositeConfig.featureProviders || []).filter(
224
+ (providerConfig) =>
225
+ (providerConfig as MapboxFeatureProviderOptions).type !==
226
+ MapboxFeatureProvider.className,
227
+ );
228
+ const attributeProviders = compositeConfig.attributeProviders || [];
229
+
230
+ if (featureProviders.length === 0 && attributeProviders.length === 0) {
231
+ delete config.featureProvider;
232
+ } else if (
233
+ featureProviders.length === 0 &&
234
+ attributeProviders.length === 1
235
+ ) {
236
+ config.featureProvider =
237
+ attributeProviders[0] as AbstractAttributeProvider;
238
+ } else {
239
+ const filteredComposite: CompositeFeatureProviderOptions = {
240
+ ...compositeConfig,
241
+ featureProviders,
242
+ attributeProviders,
243
+ };
244
+ config.featureProvider = filteredComposite;
245
+ }
246
+ }
247
+
208
248
  if (this._sources && this._sources.length > 0) {
209
249
  config.sources = this._sources.slice();
210
250
  }
@@ -25,6 +25,9 @@ import {
25
25
  import Extent from '../util/extent.js';
26
26
  import { cartesian2DDistanceSquared } from '../util/math.js';
27
27
  import { getStyleOrDefaultStyle } from '../style/styleFactory.js';
28
+ import CesiumMap from '../map/cesiumMap.js';
29
+ import VectorTileCesiumImpl from './cesium/vectorTileCesiumImpl.js';
30
+ import PanoramaDatasetCesiumImpl from './cesium/panoramaDatasetCesiumImpl.js';
28
31
 
29
32
  export type PanoramaDatasetOptions = Omit<
30
33
  VectorTileOptions,
@@ -54,7 +57,7 @@ export default class PanoramaDatasetLayer extends VectorTileLayer<PanoramaDatase
54
57
  baseLevel: 15,
55
58
  cameraOffset: 0,
56
59
  minLevel: 15,
57
- maxLevel: 22,
60
+ maxLevel: undefined,
58
61
  zIndex: maxZIndexMin50,
59
62
  ignoreMapLayerTypes: true,
60
63
  panoramaVectorProperties: {
@@ -190,6 +193,14 @@ export default class PanoramaDatasetLayer extends VectorTileLayer<PanoramaDatase
190
193
  }),
191
194
  ];
192
195
  }
196
+
197
+ if (map instanceof CesiumMap) {
198
+ return [
199
+ this.renderer === 'image'
200
+ ? new PanoramaDatasetCesiumImpl(map, this.getImplementationOptions())
201
+ : new VectorTileCesiumImpl(map, this.getImplementationOptions()),
202
+ ];
203
+ }
193
204
  return super.createImplementationsForMap(map);
194
205
  }
195
206
 
@@ -319,6 +319,10 @@ class VectorTileLayer<
319
319
  }
320
320
  }
321
321
 
322
+ get renderer(): VectorTileRenderer {
323
+ return this._renderer;
324
+ }
325
+
322
326
  async initialize(): Promise<void> {
323
327
  if (!this.initialized) {
324
328
  this._tileLoadEventListener =
@@ -1,31 +0,0 @@
1
- import type GeoTIFFSource from 'ol/source/GeoTIFF.js';
2
- import { Event as CesiumEvent, type ImageryTypes, Rectangle, type TilingScheme } from '@vcmap-cesium/engine';
3
- export declare function createEmptyCanvas(width: number, height: number): HTMLCanvasElement;
4
- export default class COGImageryProvider {
5
- private _source;
6
- private _emptyCanvas;
7
- _reload: undefined | (() => void);
8
- private _projection;
9
- private _tilingScheme;
10
- private _tileGrid;
11
- private _boundTileLoader;
12
- readonly tileWidth: number;
13
- readonly tileHeight: number;
14
- constructor(_source: GeoTIFFSource);
15
- get _ready(): boolean;
16
- get ready(): boolean;
17
- get rectangle(): Rectangle;
18
- get tilingScheme(): TilingScheme;
19
- readonly errorEvent: CesiumEvent;
20
- get credit(): undefined;
21
- get proxy(): undefined;
22
- get maximumLevel(): number;
23
- get minimumLevel(): number;
24
- get tileDiscardPolicy(): undefined;
25
- get hasAlphaChannel(): boolean;
26
- private _getTileSizeForLevel;
27
- private _loadOLTile;
28
- private _loadAlignedTile;
29
- private _loadUnalignedTile;
30
- requestImage(x: number, y: number, level: number): Promise<ImageryTypes>;
31
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"cogImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/cogImageryProvider.ts"],"names":[],"mappings":"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"}
@@ -1,147 +0,0 @@
1
- import { parseInteger } from '@vcsuite/parsers';
2
- import { getLogger } from '@vcsuite/logger';
3
- import { getCenter, buffer } from 'ol/extent.js';
4
- import LRUCache from 'ol/structs/LRUCache.js';
5
- import OLMap from 'ol/Map.js';
6
- import { rectangleToMercatorExtent } from '../../util/math.js';
7
- import VectorTileImageryProvider from './vectorTileImageryProvider.js';
8
- function getTileCacheKey(x, y, level) {
9
- return `${x}-${y}-${level}`;
10
- }
11
- function getGutterSize(level) {
12
- if (level < 12) {
13
- return 32;
14
- }
15
- if (level < 15) {
16
- return 48;
17
- }
18
- return 64;
19
- }
20
- /**
21
- * Implementation of Cesium ImageryProvider Interface for Mapbox Style Tiles
22
- */
23
- class MapboxStyleImageryProvider extends VectorTileImageryProvider {
24
- static get className() {
25
- return 'MapboxStyleImageryProvider';
26
- }
27
- _tileCacheByLevel;
28
- _maxCacheSize;
29
- _isRendering = false;
30
- _renderMap = new OLMap({
31
- target: document.createElement('div'),
32
- });
33
- constructor(options) {
34
- super(options);
35
- this._tileCacheByLevel = new Map();
36
- this._maxCacheSize = parseInteger(options.tileCacheSize, 100);
37
- this._renderMap.addLayer(options.styledMapboxLayerGroup);
38
- }
39
- requestImage(x, y, level) {
40
- const cacheKey = getTileCacheKey(x, y, level);
41
- const levelCache = this._getLevelCache(level);
42
- if (levelCache.containsKey(cacheKey)) {
43
- return Promise.resolve(levelCache.get(cacheKey));
44
- }
45
- if (this._isRendering) {
46
- return undefined;
47
- }
48
- return this._doRequestImage(x, y, level, cacheKey);
49
- }
50
- async _doRequestImage(x, y, level, cacheKey) {
51
- const { tilingScheme } = this.tileProvider;
52
- const rectangle = tilingScheme.tileXYToRectangle(x, y, level);
53
- const extent = rectangleToMercatorExtent(rectangle);
54
- // Add gutters to prevent labels from being cut off
55
- const gutterSize = getGutterSize(level);
56
- const gutter = ((extent[2] - extent[0]) / this.tileWidth) * gutterSize;
57
- const expandedExtent = buffer(extent, gutter);
58
- const renderedTile = await this._renderTile(level, expandedExtent, gutterSize);
59
- const levelCache = this._getLevelCache(level);
60
- levelCache.set(cacheKey, renderedTile);
61
- levelCache.expireCache();
62
- return renderedTile;
63
- }
64
- _getLevelCache(level) {
65
- const existing = this._tileCacheByLevel.get(level);
66
- if (existing) {
67
- return existing;
68
- }
69
- const cache = new LRUCache(this._maxCacheSize);
70
- this._tileCacheByLevel.set(level, cache);
71
- return cache;
72
- }
73
- _renderTile(level, extent, gutterSize) {
74
- const TIMEOUT_MS = 2500;
75
- return new Promise((resolve) => {
76
- this._isRendering = true;
77
- let isFinished = false;
78
- const finish = (canvas) => {
79
- if (isFinished) {
80
- return;
81
- }
82
- isFinished = true;
83
- this._isRendering = false;
84
- resolve(canvas);
85
- };
86
- try {
87
- if (!this._renderMap) {
88
- finish(this.emptyCanvas);
89
- return;
90
- }
91
- const renderWidth = this.tileWidth + 2 * gutterSize;
92
- const renderHeight = this.tileHeight + 2 * gutterSize;
93
- const view = this._renderMap.getView();
94
- view.setCenter(getCenter(extent));
95
- view.setZoom(level);
96
- this._renderMap.setSize([renderWidth, renderHeight]);
97
- const handleRenderComplete = () => {
98
- this._renderMap?.un('rendercomplete', handleRenderComplete);
99
- const renderedCanvas = this._renderMap
100
- ?.getViewport()
101
- .querySelector('canvas');
102
- if (!renderedCanvas) {
103
- finish(this.emptyCanvas);
104
- return;
105
- }
106
- // Crop the canvas to extract the center portion (original tile size)
107
- const tileCanvas = document.createElement('canvas');
108
- tileCanvas.width = this.tileWidth;
109
- tileCanvas.height = this.tileHeight;
110
- const ctx = tileCanvas.getContext('2d');
111
- if (ctx) {
112
- const scaleX = renderedCanvas.width / renderWidth;
113
- const scaleY = renderedCanvas.height / renderHeight;
114
- ctx.drawImage(renderedCanvas, gutterSize * scaleX, gutterSize * scaleY, this.tileWidth * scaleX, this.tileHeight * scaleY, 0, 0, this.tileWidth, this.tileHeight);
115
- }
116
- finish(tileCanvas);
117
- };
118
- const timeoutId = window.setTimeout(() => {
119
- this._renderMap?.un('rendercomplete', handleRenderComplete);
120
- getLogger('MapboxVectorTileImageryProvider').warning('Tile render timed out; returning empty tile.');
121
- finish(this.emptyCanvas);
122
- }, TIMEOUT_MS);
123
- const wrappedHandleRenderComplete = () => {
124
- window.clearTimeout(timeoutId);
125
- handleRenderComplete();
126
- };
127
- this._renderMap.once('rendercomplete', wrappedHandleRenderComplete);
128
- this._renderMap.render();
129
- }
130
- catch (e) {
131
- getLogger('MapboxVectorTileImageryProvider').error(`Error rendering tile: ${e.message}`);
132
- finish(this.emptyCanvas);
133
- }
134
- });
135
- }
136
- destroy() {
137
- for (const cache of this._tileCacheByLevel.values()) {
138
- cache.clear();
139
- }
140
- this._tileCacheByLevel.clear();
141
- this._isRendering = false;
142
- this._renderMap?.setTarget(undefined);
143
- this._renderMap?.dispose();
144
- }
145
- }
146
- export default MapboxStyleImageryProvider;
147
- //# sourceMappingURL=mapboxStyleImageryProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapboxStyleImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/mapboxStyleImageryProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vectorTileImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/vectorTileImageryProvider.ts"],"names":[],"mappings":"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"}