@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.
- package/dist/src/layer/cesium/cogImageryProvider.d.ts +1 -1
- package/dist/src/layer/cesium/cogImageryProvider.js +78 -37
- package/dist/src/layer/cesium/cogImageryProvider.js.map +1 -1
- package/dist/src/layer/cesium/vectorTileImageryProvider.d.ts +8 -3
- package/dist/src/layer/cesium/vectorTileImageryProvider.js +14 -10
- package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
- package/package.json +1 -1
- package/src/layer/cesium/cogImageryProvider.ts +96 -46
- package/src/layer/cesium/vectorTileImageryProvider.ts +19 -13
|
@@ -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
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
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,
|
|
2
|
-
import type
|
|
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,
|
|
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,
|
|
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 {
|
|
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,
|
|
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
|
|
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
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"vectorTileImageryProvider.js","sourceRoot":"","sources":["../../../../src/layer/cesium/vectorTileImageryProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
this.
|
|
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
|
-
|
|
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
|
-
|
|
286
|
-
|
|
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
|
-
|
|
365
|
+
drawData(
|
|
318
366
|
ctx,
|
|
319
367
|
tileData,
|
|
320
|
-
|
|
321
|
-
(
|
|
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) / (
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
228
|
-
return getCanvasFromFeatures(features, extent, center, this._tileSize);
|
|
234
|
+
return getCanvasFromFeatures(features, extent, undefined, this._tileSize);
|
|
229
235
|
}
|
|
230
236
|
}
|
|
231
237
|
|