@vcmap/core 6.3.1 → 6.3.2

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.
@@ -23,8 +23,8 @@ export default class COGImageryProvider {
23
23
  get minimumLevel(): number;
24
24
  get tileDiscardPolicy(): undefined;
25
25
  get hasAlphaChannel(): boolean;
26
+ private _getTileSizeForLevel;
26
27
  private _loadOLTile;
27
- private _drawData;
28
28
  private _loadAlignedTile;
29
29
  private _loadUnalignedTile;
30
30
  requestImage(x: number, y: number, level: number): Promise<ImageryTypes>;
@@ -9,10 +9,32 @@ export function createEmptyCanvas(width, height) {
9
9
  canvas.height = height;
10
10
  return canvas;
11
11
  }
12
- function areGridsAligned(tileGrid, tilingScheme) {
12
+ function areGridsAligned(tileGrid, tilingScheme, source) {
13
13
  const olRectangle = mercatorExtentToRectangle(tileGrid.getTileCoordExtent([0, 0, 0]));
14
14
  const cesiumRectangle = tilingScheme.tileXYToRectangle(0, 0, 0);
15
- return Rectangle.equalsEpsilon(cesiumRectangle, olRectangle, CesiumMath.EPSILON8);
15
+ const rectanglesEqual = Rectangle.equalsEpsilon(cesiumRectangle, olRectangle, CesiumMath.EPSILON8);
16
+ if (rectanglesEqual) {
17
+ let width = 0;
18
+ let height = 0;
19
+ const numResolutions = tileGrid.getResolutions().length;
20
+ for (let i = 0; i < numResolutions; i++) {
21
+ // @ts-expect-error protected
22
+ const size = source.getTileSize(i);
23
+ if (!width) {
24
+ width = Math.round(size[0]);
25
+ }
26
+ else if (width !== Math.round(size[0])) {
27
+ return false;
28
+ }
29
+ if (!height) {
30
+ height = Math.round(size[1]);
31
+ }
32
+ else if (height !== Math.round(size[1])) {
33
+ return false;
34
+ }
35
+ }
36
+ }
37
+ return rectanglesEqual;
16
38
  }
17
39
  function getTilingSchemeFromSource(source) {
18
40
  const tileGrid = source.getTileGrid();
@@ -40,6 +62,43 @@ function getTilingSchemeFromSource(source) {
40
62
  }
41
63
  return tilingScheme;
42
64
  }
65
+ function drawData(ctx, data, size, offsetX = 0, offsetY = 0) {
66
+ const imageData = ctx.createImageData(size[0], size[1]);
67
+ let usedData = data;
68
+ // this is a grey image
69
+ if (data.length === imageData.data.length / 2) {
70
+ usedData = new Uint8Array(imageData.data.length);
71
+ for (let i = 0; i < data.length; i++) {
72
+ const value = data[i];
73
+ if (i % 2 === 0) {
74
+ const pixelOffset = (i / 2) * 4;
75
+ usedData[pixelOffset] = value;
76
+ usedData[pixelOffset + 1] = value;
77
+ usedData[pixelOffset + 2] = value;
78
+ }
79
+ else {
80
+ const pixelOffset = ((i - 1) / 2) * 4;
81
+ usedData[pixelOffset + 3] = value;
82
+ }
83
+ }
84
+ }
85
+ imageData.data.set(usedData);
86
+ ctx.putImageData(imageData, offsetX, offsetY);
87
+ }
88
+ function getMaximumTileSize(tileGrid, source) {
89
+ let width = 0;
90
+ let height = 0;
91
+ const numResolutions = tileGrid.getResolutions().length;
92
+ for (let i = 0; i < numResolutions; i++) {
93
+ // @ts-expect-error protected
94
+ const size = source.getTileSize(i);
95
+ if (width < size[0] && height < size[1]) {
96
+ width = Math.round(size[0]);
97
+ height = Math.round(size[1]);
98
+ }
99
+ }
100
+ return [width, height];
101
+ }
43
102
  export default class COGImageryProvider {
44
103
  _source;
45
104
  _emptyCanvas;
@@ -53,20 +112,19 @@ export default class COGImageryProvider {
53
112
  tileHeight = 256;
54
113
  constructor(_source) {
55
114
  this._source = _source;
56
- this._emptyCanvas = createEmptyCanvas(this.tileWidth, this.tileHeight);
57
115
  this._projection = this._source.getProjection();
58
116
  this._tileGrid = this._source.getTileGrid();
59
117
  this._tilingScheme = getTilingSchemeFromSource(this._source);
60
- if (areGridsAligned(this._tileGrid, this._tilingScheme)) {
118
+ if (areGridsAligned(this._tileGrid, this._tilingScheme, this._source)) {
61
119
  this._boundTileLoader = this._loadAlignedTile.bind(this);
62
120
  }
63
121
  else {
64
122
  this._boundTileLoader = this._loadUnalignedTile.bind(this);
65
123
  }
66
- // @ts-expect-error protected
67
- const [width, height] = this._source.getTileSize(0);
68
- this.tileWidth = Math.round(width);
69
- this.tileHeight = Math.round(height);
124
+ const [width, height] = getMaximumTileSize(this._tileGrid, this._source);
125
+ this.tileWidth = width;
126
+ this.tileHeight = height;
127
+ this._emptyCanvas = createEmptyCanvas(this.tileWidth, this.tileHeight);
70
128
  }
71
129
  // eslint-disable-next-line class-methods-use-this,@typescript-eslint/naming-convention
72
130
  get _ready() {
@@ -118,6 +176,11 @@ export default class COGImageryProvider {
118
176
  get hasAlphaChannel() {
119
177
  return true;
120
178
  }
179
+ _getTileSizeForLevel(level) {
180
+ // @ts-expect-error protected
181
+ const [width, height] = this._source.getTileSize(level);
182
+ return [Math.round(width), Math.round(height)];
183
+ }
121
184
  async _loadOLTile(x, y, level) {
122
185
  const tile = this._source.getTile(level, x, y, 1, this._projection);
123
186
  if (tile) {
@@ -151,36 +214,13 @@ export default class COGImageryProvider {
151
214
  }
152
215
  return Promise.resolve(undefined);
153
216
  }
154
- _drawData(ctx, data, offsetX = 0, offsetY = 0) {
155
- const imageData = ctx.createImageData(this.tileWidth, this.tileHeight);
156
- let usedData = data;
157
- // this is a grey image
158
- if (data.length === imageData.data.length / 2) {
159
- usedData = new Uint8Array(imageData.data.length);
160
- for (let i = 0; i < data.length; i++) {
161
- const value = data[i];
162
- if (i % 2 === 0) {
163
- const pixelOffset = (i / 2) * 4;
164
- usedData[pixelOffset] = value;
165
- usedData[pixelOffset + 1] = value;
166
- usedData[pixelOffset + 2] = value;
167
- }
168
- else {
169
- const pixelOffset = ((i - 1) / 2) * 4;
170
- usedData[pixelOffset + 3] = value;
171
- }
172
- }
173
- }
174
- imageData.data.set(usedData);
175
- ctx.putImageData(imageData, offsetX, offsetY);
176
- }
177
217
  async _loadAlignedTile(x, y, level) {
178
218
  const tileData = await this._loadOLTile(x, y, level);
179
219
  if (tileData) {
180
220
  const canvas = createEmptyCanvas(this.tileWidth, this.tileHeight);
181
221
  const ctx = canvas.getContext('2d');
182
222
  if (ctx) {
183
- this._drawData(ctx, tileData);
223
+ drawData(ctx, tileData, [this.tileWidth, this.tileHeight]);
184
224
  }
185
225
  return canvas;
186
226
  }
@@ -192,7 +232,8 @@ export default class COGImageryProvider {
192
232
  const resolution = Math.max(getExtentWidth(extent) / this.tileWidth, getExtentHeight(extent) / this.tileHeight);
193
233
  const levelResolution = this._tileGrid.getZForResolution(resolution);
194
234
  const tileRange = this._tileGrid.getTileRangeForExtentAndZ(extent, levelResolution);
195
- const canvas = createEmptyCanvas(this.tileWidth * tileRange.getWidth(), this.tileHeight * tileRange.getHeight());
235
+ const [levelWidth, levelHeight] = this._getTileSizeForLevel(levelResolution);
236
+ const canvas = createEmptyCanvas(levelWidth * tileRange.getWidth(), levelHeight * tileRange.getHeight());
196
237
  const ctx = canvas.getContext('2d');
197
238
  if (!ctx) {
198
239
  return this._emptyCanvas;
@@ -208,15 +249,15 @@ export default class COGImageryProvider {
208
249
  ]));
209
250
  promises.push(this._loadOLTile(partialX, partialY, levelResolution).then((tileData) => {
210
251
  if (tileData) {
211
- this._drawData(ctx, tileData, (partialX - tileRange.minX) * this.tileWidth, (partialY - tileRange.minY) * this.tileHeight);
252
+ drawData(ctx, tileData, [levelWidth, levelHeight], (partialX - tileRange.minX) * levelWidth, (partialY - tileRange.minY) * levelHeight);
212
253
  }
213
254
  }));
214
255
  }
215
256
  }
216
257
  await Promise.all(promises);
217
- const unitsPerPixelX = getExtentWidth(tileRangeExtent) / (this.tileWidth * tileRange.getWidth());
218
- const unitsPerPixelY = getExtentHeight(tileRangeExtent) /
219
- (this.tileHeight * tileRange.getHeight());
258
+ // TODO if canvas has same height and width early escape
259
+ const unitsPerPixelX = getExtentWidth(tileRangeExtent) / (levelWidth * tileRange.getWidth());
260
+ const unitsPerPixelY = getExtentHeight(tileRangeExtent) / (levelHeight * tileRange.getHeight());
220
261
  const tileRangeTopLeft = getTopLeftExtent(tileRangeExtent);
221
262
  const extentTopLeft = getTopLeftExtent(extent);
222
263
  const windowX = Math.abs(tileRangeTopLeft[0] - extentTopLeft[0]) / unitsPerPixelX;
@@ -1 +1 @@
1
- {"version":3,"file":"cogImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/cogImageryProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cogImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/cogImageryProvider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Event as CesiumEvent, Rectangle, type Cartographic, type TilingScheme } from '@vcmap-cesium/engine';
2
- import type { Extent } from 'ol/extent.js';
1
+ import { type Cartographic, Event as CesiumEvent, type Rectangle, type TilingScheme } from '@vcmap-cesium/engine';
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';
@@ -8,8 +8,13 @@ import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
8
8
  export declare function toContext(extent: Extent, center: Coordinate, context: CanvasRenderingContext2D, tileSize: Size): CanvasTileRenderer;
9
9
  /**
10
10
  * creates a canvas and draws the features on the canvas;
11
+ * @param features
12
+ * @param extent
13
+ * @param deprecatedCenter deprecated, center is taken from the extent
14
+ * @param tileSize
15
+ * @returns a canvas with the features drawn on it
11
16
  */
12
- export declare function getCanvasFromFeatures(features: Feature[], extent: Extent, center: Cartographic, tileSize: Size): HTMLCanvasElement;
17
+ export declare function getCanvasFromFeatures(features: Feature[], extent: Extent, deprecatedCenter: Cartographic | undefined, tileSize: Size): HTMLCanvasElement;
13
18
  export type VectorTileImageryProviderOptions = {
14
19
  tileProvider: TileProvider;
15
20
  tileSize: Size;
@@ -1,6 +1,7 @@
1
- import { Event as CesiumEvent, Rectangle, Math as CesiumMath, } from '@vcmap-cesium/engine';
1
+ import { Event as CesiumEvent, } from '@vcmap-cesium/engine';
2
+ import { getLogger } from '@vcsuite/logger';
2
3
  import { compose, create as createTransform, scale as scaleTransform, } from 'ol/transform.js';
3
- import { wgs84ToMercatorTransformer } from '../../util/projection.js';
4
+ import { getCenter } from 'ol/extent.js';
4
5
  import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
5
6
  import { rectangleToMercatorExtent } from '../../util/math.js';
6
7
  export function toContext(extent, center, context, tileSize) {
@@ -18,16 +19,20 @@ export function toContext(extent, center, context, tileSize) {
18
19
  }
19
20
  /**
20
21
  * creates a canvas and draws the features on the canvas;
22
+ * @param features
23
+ * @param extent
24
+ * @param deprecatedCenter deprecated, center is taken from the extent
25
+ * @param tileSize
26
+ * @returns a canvas with the features drawn on it
21
27
  */
22
- export function getCanvasFromFeatures(features, extent, center, tileSize) {
28
+ export function getCanvasFromFeatures(features, extent, deprecatedCenter, tileSize) {
29
+ if (deprecatedCenter) {
30
+ getLogger('VectorTileImageryProvider').deprecate('getCanvasFromFeatures', 'getCanvasFromFeatures no longer requires a center, it is taken from the extent');
31
+ }
23
32
  const canvas = document.createElement('canvas');
24
33
  canvas.width = tileSize[0];
25
34
  canvas.height = tileSize[0];
26
- const centerMercator = wgs84ToMercatorTransformer([
27
- CesiumMath.toDegrees(center.longitude),
28
- CesiumMath.toDegrees(center.latitude),
29
- ]);
30
- const vectorContext = toContext(extent, centerMercator, canvas.getContext('2d'), tileSize);
35
+ const vectorContext = toContext(extent, getCenter(extent), canvas.getContext('2d'), tileSize);
31
36
  features.forEach((feature) => {
32
37
  const styleFunction = feature.getStyleFunction();
33
38
  const featureStyles = styleFunction(feature, 1);
@@ -125,8 +130,7 @@ class VectorTileImageryProvider {
125
130
  }
126
131
  const rectangle = this.tileProvider.tilingScheme.tileXYToRectangle(x, y, level);
127
132
  const extent = rectangleToMercatorExtent(rectangle);
128
- const center = Rectangle.center(rectangle);
129
- return getCanvasFromFeatures(features, extent, center, this._tileSize);
133
+ return getCanvasFromFeatures(features, extent, undefined, this._tileSize);
130
134
  }
131
135
  }
132
136
  export default VectorTileImageryProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"vectorTileImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/vectorTileImageryProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,WAAW,EACpB,SAAS,EACT,IAAI,IAAI,UAAU,GAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,OAAO,EACP,MAAM,IAAI,eAAe,EACzB,KAAK,IAAI,cAAc,GACxB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,kBAAkB,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,UAAU,SAAS,CACvB,MAAc,EACd,MAAkB,EAClB,OAAiC,EACjC,QAAc;IAEd,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAC1B,SAAS,EACT,GAAG,EACH,GAAG,EACH,EAAE,EACF,EAAE,EACF,CAAC,EACD,CAAC,MAAM,CAAC,CAAC,CAAC,EACV,CAAC,MAAM,CAAC,CAAC,CAAC,CACX,CAAC;IAEF,OAAO,IAAI,kBAAkB,CAC3B,OAAO,EACP,CAAC,EACD,MAAM,EACN,YAAY,EACZ,CAAC,EACD,SAAS,EACT,SAAS,EACT,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAmB,EACnB,MAAc,EACd,MAAoB,EACpB,QAAc;IAEd,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,0BAA0B,CAAC;QAChD,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QACtC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,SAAS,CAC7B,MAAM,EACN,cAAc,EACd,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,EACnD,QAAQ,CACT,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAmB,CAAC;QAClE,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAY,CAAC;QAC3D,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD;;GAEG;AACH,MAAM,yBAAyB;IAC7B,YAAY,CAAe;IAEnB,aAAa,CAAe;IAE5B,SAAS,CAAO;IAEhB,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAExC,OAAO,CAA0B;IAEjC,WAAW,CAAoB;IAE/B,QAAQ,GAAG,CAAC,CAAC;IAEb,QAAQ,GAAG,EAAE,CAAC;IAEd,gEAAgE;IAChE,OAAO,GAA6B,SAAS,CAAC;IAE9C,YAAY,OAAyC;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAErC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,uFAAuF;IACvF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,kDAAkD;IAClD,IAAI,iBAAiB;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM;QACR,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,kDAAkD;IAClD,IAAI,KAAK;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,kDAAkD;IAClD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAChB,CAAS,EACT,CAAS,EACT,KAAa;QAGb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CACzD,CAAC,EACD,CAAC,EACD,KAAK,EACL,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAChE,CAAC,EACD,CAAC,EACD,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;CACF;AAED,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"vectorTileImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/vectorTileImageryProvider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/core",
3
- "version": "6.3.1",
3
+ "version": "6.3.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -7,6 +7,7 @@ import {
7
7
  getHeight as getExtentHeight,
8
8
  getTopLeft as getTopLeftExtent,
9
9
  } from 'ol/extent.js';
10
+ import type { Size } from 'ol/size.js';
10
11
  import TileState from 'ol/TileState.js';
11
12
  import {
12
13
  Cartesian2,
@@ -38,17 +39,40 @@ export function createEmptyCanvas(
38
39
  function areGridsAligned(
39
40
  tileGrid: TileGrid,
40
41
  tilingScheme: TilingScheme,
42
+ source: GeoTIFFSource,
41
43
  ): boolean {
42
44
  const olRectangle = mercatorExtentToRectangle(
43
45
  tileGrid.getTileCoordExtent([0, 0, 0]),
44
46
  );
45
47
  const cesiumRectangle = tilingScheme.tileXYToRectangle(0, 0, 0);
46
48
 
47
- return Rectangle.equalsEpsilon(
49
+ const rectanglesEqual = Rectangle.equalsEpsilon(
48
50
  cesiumRectangle,
49
51
  olRectangle,
50
52
  CesiumMath.EPSILON8,
51
53
  );
54
+
55
+ if (rectanglesEqual) {
56
+ let width = 0;
57
+ let height = 0;
58
+ const numResolutions = tileGrid.getResolutions().length;
59
+ for (let i = 0; i < numResolutions; i++) {
60
+ // @ts-expect-error protected
61
+ const size = source.getTileSize(i);
62
+ if (!width) {
63
+ width = Math.round(size[0]);
64
+ } else if (width !== Math.round(size[0])) {
65
+ return false;
66
+ }
67
+
68
+ if (!height) {
69
+ height = Math.round(size[1]);
70
+ } else if (height !== Math.round(size[1])) {
71
+ return false;
72
+ }
73
+ }
74
+ }
75
+ return rectanglesEqual;
52
76
  }
53
77
 
54
78
  function getTilingSchemeFromSource(source: GeoTIFFSource): TilingScheme {
@@ -80,6 +104,52 @@ function getTilingSchemeFromSource(source: GeoTIFFSource): TilingScheme {
80
104
  return tilingScheme;
81
105
  }
82
106
 
107
+ function drawData(
108
+ ctx: CanvasRenderingContext2D,
109
+ data: Uint8Array,
110
+ size: [number, number],
111
+ offsetX = 0,
112
+ offsetY = 0,
113
+ ): void {
114
+ const imageData = ctx.createImageData(size[0], size[1]);
115
+ let usedData = data;
116
+ // this is a grey image
117
+ if (data.length === imageData.data.length / 2) {
118
+ usedData = new Uint8Array(imageData.data.length);
119
+ for (let i = 0; i < data.length; i++) {
120
+ const value = data[i];
121
+ if (i % 2 === 0) {
122
+ const pixelOffset = (i / 2) * 4;
123
+ usedData[pixelOffset] = value;
124
+ usedData[pixelOffset + 1] = value;
125
+ usedData[pixelOffset + 2] = value;
126
+ } else {
127
+ const pixelOffset = ((i - 1) / 2) * 4;
128
+ usedData[pixelOffset + 3] = value;
129
+ }
130
+ }
131
+ }
132
+
133
+ imageData.data.set(usedData);
134
+ ctx.putImageData(imageData, offsetX, offsetY);
135
+ }
136
+
137
+ function getMaximumTileSize(tileGrid: TileGrid, source: GeoTIFFSource): Size {
138
+ let width = 0;
139
+ let height = 0;
140
+ const numResolutions = tileGrid.getResolutions().length;
141
+ for (let i = 0; i < numResolutions; i++) {
142
+ // @ts-expect-error protected
143
+ const size = source.getTileSize(i);
144
+ if (width < size[0] && height < size[1]) {
145
+ width = Math.round(size[0]);
146
+ height = Math.round(size[1]);
147
+ }
148
+ }
149
+
150
+ return [width, height];
151
+ }
152
+
83
153
  export default class COGImageryProvider {
84
154
  private _emptyCanvas: HTMLCanvasElement;
85
155
 
@@ -103,20 +173,18 @@ export default class COGImageryProvider {
103
173
  readonly tileHeight: number = 256;
104
174
 
105
175
  constructor(private _source: GeoTIFFSource) {
106
- this._emptyCanvas = createEmptyCanvas(this.tileWidth, this.tileHeight);
107
176
  this._projection = this._source.getProjection()!;
108
177
  this._tileGrid = this._source.getTileGrid()!;
109
178
  this._tilingScheme = getTilingSchemeFromSource(this._source);
110
- if (areGridsAligned(this._tileGrid, this._tilingScheme)) {
179
+ if (areGridsAligned(this._tileGrid, this._tilingScheme, this._source)) {
111
180
  this._boundTileLoader = this._loadAlignedTile.bind(this);
112
181
  } else {
113
182
  this._boundTileLoader = this._loadUnalignedTile.bind(this);
114
183
  }
115
-
116
- // @ts-expect-error protected
117
- const [width, height] = this._source.getTileSize(0);
118
- this.tileWidth = Math.round(width);
119
- this.tileHeight = Math.round(height);
184
+ const [width, height] = getMaximumTileSize(this._tileGrid, this._source);
185
+ this.tileWidth = width;
186
+ this.tileHeight = height;
187
+ this._emptyCanvas = createEmptyCanvas(this.tileWidth, this.tileHeight);
120
188
  }
121
189
 
122
190
  // eslint-disable-next-line class-methods-use-this,@typescript-eslint/naming-convention
@@ -178,6 +246,11 @@ export default class COGImageryProvider {
178
246
  get hasAlphaChannel(): boolean {
179
247
  return true;
180
248
  }
249
+ private _getTileSizeForLevel(level: number): [number, number] {
250
+ // @ts-expect-error protected
251
+ const [width, height] = this._source.getTileSize(level);
252
+ return [Math.round(width), Math.round(height)];
253
+ }
181
254
 
182
255
  private async _loadOLTile(
183
256
  x: number,
@@ -218,35 +291,6 @@ export default class COGImageryProvider {
218
291
  return Promise.resolve(undefined);
219
292
  }
220
293
 
221
- private _drawData(
222
- ctx: CanvasRenderingContext2D,
223
- data: Uint8Array,
224
- offsetX = 0,
225
- offsetY = 0,
226
- ): void {
227
- const imageData = ctx.createImageData(this.tileWidth, this.tileHeight);
228
- let usedData = data;
229
- // this is a grey image
230
- if (data.length === imageData.data.length / 2) {
231
- usedData = new Uint8Array(imageData.data.length);
232
- for (let i = 0; i < data.length; i++) {
233
- const value = data[i];
234
- if (i % 2 === 0) {
235
- const pixelOffset = (i / 2) * 4;
236
- usedData[pixelOffset] = value;
237
- usedData[pixelOffset + 1] = value;
238
- usedData[pixelOffset + 2] = value;
239
- } else {
240
- const pixelOffset = ((i - 1) / 2) * 4;
241
- usedData[pixelOffset + 3] = value;
242
- }
243
- }
244
- }
245
-
246
- imageData.data.set(usedData);
247
- ctx.putImageData(imageData, offsetX, offsetY);
248
- }
249
-
250
294
  private async _loadAlignedTile(
251
295
  x: number,
252
296
  y: number,
@@ -257,7 +301,7 @@ export default class COGImageryProvider {
257
301
  const canvas = createEmptyCanvas(this.tileWidth, this.tileHeight);
258
302
  const ctx = canvas.getContext('2d');
259
303
  if (ctx) {
260
- this._drawData(ctx, tileData);
304
+ drawData(ctx, tileData, [this.tileWidth, this.tileHeight]);
261
305
  }
262
306
  return canvas;
263
307
  }
@@ -281,10 +325,14 @@ export default class COGImageryProvider {
281
325
  extent,
282
326
  levelResolution,
283
327
  );
328
+
329
+ const [levelWidth, levelHeight] =
330
+ this._getTileSizeForLevel(levelResolution);
284
331
  const canvas = createEmptyCanvas(
285
- this.tileWidth * tileRange.getWidth(),
286
- this.tileHeight * tileRange.getHeight(),
332
+ levelWidth * tileRange.getWidth(),
333
+ levelHeight * tileRange.getHeight(),
287
334
  );
335
+
288
336
  const ctx = canvas.getContext('2d');
289
337
  if (!ctx) {
290
338
  return this._emptyCanvas;
@@ -314,11 +362,12 @@ export default class COGImageryProvider {
314
362
  this._loadOLTile(partialX, partialY, levelResolution).then(
315
363
  (tileData) => {
316
364
  if (tileData) {
317
- this._drawData(
365
+ drawData(
318
366
  ctx,
319
367
  tileData,
320
- (partialX - tileRange.minX) * this.tileWidth,
321
- (partialY - tileRange.minY) * this.tileHeight,
368
+ [levelWidth, levelHeight],
369
+ (partialX - tileRange.minX) * levelWidth,
370
+ (partialY - tileRange.minY) * levelHeight,
322
371
  );
323
372
  }
324
373
  },
@@ -328,11 +377,12 @@ export default class COGImageryProvider {
328
377
  }
329
378
  await Promise.all(promises);
330
379
 
380
+ // TODO if canvas has same height and width early escape
381
+
331
382
  const unitsPerPixelX =
332
- getExtentWidth(tileRangeExtent) / (this.tileWidth * tileRange.getWidth());
383
+ getExtentWidth(tileRangeExtent) / (levelWidth * tileRange.getWidth());
333
384
  const unitsPerPixelY =
334
- getExtentHeight(tileRangeExtent) /
335
- (this.tileHeight * tileRange.getHeight());
385
+ getExtentHeight(tileRangeExtent) / (levelHeight * tileRange.getHeight());
336
386
 
337
387
  const tileRangeTopLeft = getTopLeftExtent(tileRangeExtent);
338
388
  const extentTopLeft = getTopLeftExtent(extent);
@@ -1,23 +1,22 @@
1
1
  import {
2
- Event as CesiumEvent,
3
- Rectangle,
4
- Math as CesiumMath,
5
2
  type Cartographic,
3
+ Event as CesiumEvent,
4
+ type Rectangle,
6
5
  type TilingScheme,
7
6
  } from '@vcmap-cesium/engine';
7
+ import { getLogger } from '@vcsuite/logger';
8
8
  import {
9
9
  compose,
10
10
  create as createTransform,
11
11
  scale as scaleTransform,
12
12
  } from 'ol/transform.js';
13
- import type { Extent } from 'ol/extent.js';
13
+ import { type Extent, getCenter } from 'ol/extent.js';
14
14
  import type { Coordinate } from 'ol/coordinate.js';
15
15
  import type { Size } from 'ol/size.js';
16
16
  import type { Feature } from 'ol/index.js';
17
17
  // eslint-disable-next-line import/no-named-default
18
18
  import type { default as Style, StyleFunction } from 'ol/style/Style.js';
19
19
  import type TileProvider from '../tileProvider/tileProvider.js';
20
- import { wgs84ToMercatorTransformer } from '../../util/projection.js';
21
20
  import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
22
21
  import { rectangleToMercatorExtent } from '../../util/math.js';
23
22
 
@@ -61,23 +60,30 @@ export function toContext(
61
60
 
62
61
  /**
63
62
  * creates a canvas and draws the features on the canvas;
63
+ * @param features
64
+ * @param extent
65
+ * @param deprecatedCenter deprecated, center is taken from the extent
66
+ * @param tileSize
67
+ * @returns a canvas with the features drawn on it
64
68
  */
65
69
  export function getCanvasFromFeatures(
66
70
  features: Feature[],
67
71
  extent: Extent,
68
- center: Cartographic,
72
+ deprecatedCenter: Cartographic | undefined,
69
73
  tileSize: Size,
70
74
  ): HTMLCanvasElement {
75
+ if (deprecatedCenter) {
76
+ getLogger('VectorTileImageryProvider').deprecate(
77
+ 'getCanvasFromFeatures',
78
+ 'getCanvasFromFeatures no longer requires a center, it is taken from the extent',
79
+ );
80
+ }
71
81
  const canvas = document.createElement('canvas');
72
82
  canvas.width = tileSize[0];
73
83
  canvas.height = tileSize[0];
74
- const centerMercator = wgs84ToMercatorTransformer([
75
- CesiumMath.toDegrees(center.longitude),
76
- CesiumMath.toDegrees(center.latitude),
77
- ]);
78
84
  const vectorContext = toContext(
79
85
  extent,
80
- centerMercator,
86
+ getCenter(extent),
81
87
  canvas.getContext('2d') as CanvasRenderingContext2D,
82
88
  tileSize,
83
89
  );
@@ -89,6 +95,7 @@ export function getCanvasFromFeatures(
89
95
  vectorContext.drawFeature(feature, styleToUse);
90
96
  });
91
97
  });
98
+
92
99
  return canvas;
93
100
  }
94
101
 
@@ -224,8 +231,7 @@ class VectorTileImageryProvider {
224
231
  level,
225
232
  );
226
233
  const extent = rectangleToMercatorExtent(rectangle);
227
- const center = Rectangle.center(rectangle);
228
- return getCanvasFromFeatures(features, extent, center, this._tileSize);
234
+ return getCanvasFromFeatures(features, extent, undefined, this._tileSize);
229
235
  }
230
236
  }
231
237