@basemaps/lambda-tiler 8.11.1 → 8.13.0

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 (38) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/build/__tests__/config.data.d.ts +2 -0
  3. package/build/__tests__/config.data.js +38 -2
  4. package/build/__tests__/config.data.js.map +1 -1
  5. package/build/__tests__/wmts.capability.test.js +29 -4
  6. package/build/__tests__/wmts.capability.test.js.map +1 -1
  7. package/build/index.js.map +1 -1
  8. package/build/routes/__tests__/tile.style.json.test.js +114 -39
  9. package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
  10. package/build/routes/__tests__/wmts.test.js +6 -3
  11. package/build/routes/__tests__/wmts.test.js.map +1 -1
  12. package/build/routes/__tests__/xyz.test.js +1 -1
  13. package/build/routes/__tests__/xyz.test.js.map +1 -1
  14. package/build/routes/preview.js +4 -14
  15. package/build/routes/preview.js.map +1 -1
  16. package/build/routes/tile.style.json.js +75 -23
  17. package/build/routes/tile.style.json.js.map +1 -1
  18. package/build/routes/tile.xyz.raster.js +7 -12
  19. package/build/routes/tile.xyz.raster.js.map +1 -1
  20. package/build/util/validate.d.ts +13 -2
  21. package/build/util/validate.js +53 -35
  22. package/build/util/validate.js.map +1 -1
  23. package/build/wmts.capability.d.ts +6 -6
  24. package/build/wmts.capability.js +45 -22
  25. package/build/wmts.capability.js.map +1 -1
  26. package/package.json +7 -7
  27. package/src/__tests__/config.data.ts +40 -2
  28. package/src/__tests__/wmts.capability.test.ts +57 -4
  29. package/src/index.ts +1 -0
  30. package/src/routes/__tests__/tile.style.json.test.ts +154 -42
  31. package/src/routes/__tests__/wmts.test.ts +14 -3
  32. package/src/routes/__tests__/xyz.test.ts +1 -1
  33. package/src/routes/preview.ts +4 -16
  34. package/src/routes/tile.style.json.ts +84 -24
  35. package/src/routes/tile.xyz.raster.ts +7 -11
  36. package/src/util/validate.ts +60 -34
  37. package/src/wmts.capability.ts +57 -24
  38. package/tsconfig.tsbuildinfo +1 -1
@@ -91,59 +91,77 @@ export const Validate = {
91
91
  throw new LambdaHttpResponse(404, `X not found: ${x}`);
92
92
  if (isNaN(y) || y < 0 || y > zoom.matrixHeight)
93
93
  throw new LambdaHttpResponse(404, `Y not found: ${y}`);
94
- const pipeline = req.query.get('pipeline');
95
- if (pipeline)
96
- req.set('pipeline', pipeline);
94
+ const pipeline = req.query.get('pipeline') ?? undefined;
95
+ req.set('pipeline', pipeline);
97
96
  const xyzData = {
98
97
  tile: { x, y, z },
99
98
  tileSet: req.params.tileSet,
100
99
  tileMatrix,
101
100
  tileType: req.params.tileType,
102
- pipeline: req.query.get('pipeline'),
101
+ pipeline,
103
102
  };
104
103
  req.set('xyz', xyzData.tile);
105
104
  const latLon = Projection.tileCenterToLatLon(tileMatrix, xyzData.tile);
106
105
  req.set('location', latLon);
107
106
  return xyzData;
108
107
  },
108
+ /**
109
+ * Get the pipeline to use for a imagery set
110
+ *
111
+ * @param tileSet
112
+ * @param pipeline pipeline parameter if it exists
113
+ * @returns 'rgba' for any pipeline without outputs, otherwise the provided pipeline or default output
114
+ */
115
+ pipelineName(tileSet, pipeline) {
116
+ if (pipeline == null && tileSet.outputs) {
117
+ // If no pipeline is specified find the default pipeline
118
+ const defaultOutput = tileSet.outputs.find((f) => f.default === true);
119
+ if (defaultOutput)
120
+ return defaultOutput;
121
+ // If there is only one pipeline force the use of it
122
+ if (tileSet.outputs.length === 1)
123
+ return tileSet.outputs[0];
124
+ // No default pipeline, and multiple pipelines exist one must be chosen
125
+ throw new LambdaHttpResponse(404, 'TileSet needs pipeline: ' + tileSet.outputs.map((f) => f.name).join(', '));
126
+ }
127
+ // No pipeline and no outputs default is RGBA
128
+ if (pipeline == null || pipeline === 'rgba') {
129
+ return {
130
+ title: `RGBA`,
131
+ name: 'rgba',
132
+ background: tileSet.background,
133
+ };
134
+ }
135
+ // Pipeline defined and pipeline not found
136
+ if (tileSet.outputs == null)
137
+ throw new LambdaHttpResponse(404, `TileSet has no pipeline named "${pipeline}"`);
138
+ const output = tileSet.outputs.find((f) => f.name === pipeline);
139
+ if (output == null)
140
+ throw new LambdaHttpResponse(404, `TileSet has no pipeline named "${pipeline}"`);
141
+ return output;
142
+ },
109
143
  /**
110
144
  * Lookup the raster configuration pipeline for a output tile type
111
145
  *
112
146
  * Defaults to standard image format output if no outputs are defined on the tileset
113
147
  */
114
- pipeline(tileSet, tileType, pipeline) {
115
- // If there is only one pipeline force the use of it
116
- if (tileSet.outputs?.length === 1 && pipeline == null)
117
- pipeline = tileSet.outputs[0].name;
118
- if (pipeline != null && pipeline !== 'rgba') {
119
- if (tileSet.outputs == null)
120
- throw new LambdaHttpResponse(404, 'TileSet has no pipelines');
121
- const output = tileSet.outputs.find((f) => f.name === pipeline);
122
- if (output == null)
123
- throw new LambdaHttpResponse(404, `TileSet has no pipeline named "${pipeline}"`);
124
- const validFormats = output.format ?? ['webp', 'png', 'jpeg', 'avif'];
125
- if (!validFormats.includes(tileType)) {
126
- throw new LambdaHttpResponse(400, `TileSet pipeline "${pipeline}" cannot be output as ${tileType}`);
127
- }
128
- return output;
148
+ pipeline(tileSet, imageFormat, pipelineName) {
149
+ const output = Validate.pipelineName(tileSet, pipelineName);
150
+ // Failed to parse the chosen image format
151
+ const chosenFormat = getImageFormat(imageFormat);
152
+ if (imageFormat != null && chosenFormat == null) {
153
+ throw new LambdaHttpResponse(400, `TileSet pipeline "${output.name}" cannot be output as ${imageFormat}`);
129
154
  }
130
- // If the tileset has multiple pipelines defined the user MUST specify which one
131
- if (tileSet.outputs) {
132
- throw new LambdaHttpResponse(404, 'TileSet needs pipeline: ' + tileSet.outputs.map((f) => f.name).join(', '));
155
+ // No requirement on image formats
156
+ if (output.format == null)
157
+ return { output, format: chosenFormat ?? 'webp' };
158
+ if (chosenFormat == null)
159
+ return { output, format: output.format[0] };
160
+ // Validate selected format works as expected
161
+ if (!output.format.includes(chosenFormat)) {
162
+ throw new LambdaHttpResponse(400, `TileSet pipeline "${output.name}" cannot be output as ${imageFormat}`);
133
163
  }
134
- // Generate a default RGBA configuration
135
- const img = getImageFormat(tileType ?? 'webp');
136
- if (img == null)
137
- return null;
138
- return {
139
- title: `RGBA ${tileType}`,
140
- name: 'rgba',
141
- output: {
142
- type: [img],
143
- lossless: img === 'png' ? true : false,
144
- background: tileSet.background,
145
- },
146
- };
164
+ return { output, format: chosenFormat };
147
165
  },
148
166
  };
149
167
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ConfigImagery, ConfigLayer, ConfigTileSet } from '@basemaps/config';
1
+ import { ConfigImagery, ConfigLayer, ConfigTileSet, ConfigTileSetRasterOutput } from '@basemaps/config';
2
2
  import { Bounds, ImageFormat, TileMatrixSet, WmtsProvider } from '@basemaps/geo';
3
3
  import { VNodeElement } from '@basemaps/shared';
4
4
  export interface WmtsBuilderParams {
@@ -25,7 +25,7 @@ export declare class WmtsBuilder {
25
25
  addImagery(...imagery: ConfigImagery[]): void;
26
26
  addTileMatrix(...tileMatrix: TileMatrixSet[]): void;
27
27
  addFormats(...formats: ImageFormat[]): void;
28
- getFormats(): ImageFormat[];
28
+ getFormats(restrictTo?: ImageFormat[]): ImageFormat[];
29
29
  getMatrixSets(tileSet: ConfigTileSet): Set<TileMatrixSet>;
30
30
  buildKeywords(tileSet: {
31
31
  category?: string;
@@ -34,9 +34,8 @@ export declare class WmtsBuilder {
34
34
  /** Combine all the bounds of the imagery inside the layers into a extent for the imagery set */
35
35
  buildBoundingBoxFromImagery(tms: TileMatrixSet, layers: ConfigLayer[]): VNodeElement | null;
36
36
  buildStyle(): VNodeElement;
37
- buildResourceUrl(tileSetId: string, suffix: string): VNodeElement;
38
- buildTileUrl(tileSetId: string, suffix: string): string;
39
- buildFormats(): VNodeElement[];
37
+ buildResourceUrl(tileSetId: string, suffix: string, pipeline?: string): VNodeElement;
38
+ buildTileUrl(tileSetId: string, suffix: string, pipeline?: string): string;
40
39
  buildTileMatrixLink(tileSet: ConfigTileSet): VNodeElement[];
41
40
  buildLayerFromImagery(layer: ConfigLayer): VNodeElement | null;
42
41
  }
@@ -79,7 +78,8 @@ export declare class WmtsCapabilities extends WmtsBuilder {
79
78
  addProvider(provider?: WmtsProvider): void;
80
79
  addPipeline(pipeline: string): void;
81
80
  toProviderVNode(provider?: WmtsProvider): VNodeElement[] | [];
82
- toLayerVNode(tileSet: ConfigTileSet): VNodeElement;
81
+ toLayerVNode(tileSet: ConfigTileSet): VNodeElement[];
82
+ getPipelines(tileSet: ConfigTileSet, pipeline?: string): ConfigTileSetRasterOutput[];
83
83
  toAllImageryLayersVNode(configLayers?: ConfigLayer[]): VNodeElement[];
84
84
  buildTileMatrixSet(tms: TileMatrixSet): VNodeElement;
85
85
  toVNode(): VNodeElement;
@@ -1,4 +1,4 @@
1
- import { standardizeLayerName } from '@basemaps/config';
1
+ import { standardizeLayerName, TileSetType, } from '@basemaps/config';
2
2
  import { Bounds, GoogleTms, Projection } from '@basemaps/geo';
3
3
  import { toQueryString, V } from '@basemaps/shared';
4
4
  import { ImageFormatOrder } from '@basemaps/tiler';
@@ -92,7 +92,15 @@ export class WmtsBuilder {
92
92
  for (const format of formats)
93
93
  this.formats.push(format);
94
94
  }
95
- getFormats() {
95
+ getFormats(restrictTo) {
96
+ if (restrictTo) {
97
+ if (this.formats.length === 0)
98
+ return restrictTo;
99
+ const filtered = this.formats.filter((f) => restrictTo.includes(f));
100
+ if (filtered.length === 0)
101
+ return restrictTo;
102
+ return filtered;
103
+ }
96
104
  if (this.formats.length)
97
105
  return this.formats;
98
106
  return ImageFormatOrder;
@@ -168,16 +176,16 @@ export class WmtsBuilder {
168
176
  buildStyle() {
169
177
  return V('Style', { isDefault: 'true' }, [V('ows:Title', 'Default Style'), V('ows:Identifier', 'default')]);
170
178
  }
171
- buildResourceUrl(tileSetId, suffix) {
179
+ buildResourceUrl(tileSetId, suffix, pipeline) {
172
180
  return V('ResourceURL', {
173
181
  format: 'image/' + suffix,
174
182
  resourceType: 'tile',
175
- template: this.buildTileUrl(tileSetId, suffix),
183
+ template: this.buildTileUrl(tileSetId, suffix, pipeline),
176
184
  });
177
185
  }
178
- buildTileUrl(tileSetId, suffix) {
186
+ buildTileUrl(tileSetId, suffix, pipeline) {
179
187
  // TODO this should restrict the output formats to supported formats in pipelines
180
- const query = { api: this.apiKey, config: this.config, pipeline: this.pipeline };
188
+ const query = { api: this.apiKey, config: this.config, pipeline };
181
189
  return [
182
190
  this.httpBase,
183
191
  'v1',
@@ -189,9 +197,6 @@ export class WmtsBuilder {
189
197
  `{TileRow}.${suffix}${toQueryString(query)}`,
190
198
  ].join('/');
191
199
  }
192
- buildFormats() {
193
- return this.getFormats().map((fmt) => V('Format', 'image/' + fmt));
194
- }
195
200
  buildTileMatrixLink(tileSet) {
196
201
  const matrixSetNodes = [];
197
202
  for (const tms of this.tileMatrixSets.values()) {
@@ -345,19 +350,37 @@ export class WmtsCapabilities extends WmtsBuilder {
345
350
  continue;
346
351
  bounds.push(Bounds.fromJson(img.bounds));
347
352
  }
353
+ const layers = [];
354
+ const pipelines = this.getPipelines(tileSet, this.pipeline);
348
355
  const layerNameId = standardizeLayerName(tileSet.name);
349
- return V('Layer', [
350
- V('ows:Title', tileSet.title),
351
- V('ows:Abstract', tileSet.description ?? ''),
352
- V('ows:Identifier', layerNameId),
353
- this.buildKeywords(tileSet),
354
- ...[...matrixSets.values()].map((tms) => this.buildBoundingBoxFromImagery(tms, tileSet.layers)),
355
- this.buildWgs84BoundingBox(webMercatorOrFirst, bounds),
356
- this.buildStyle(),
357
- ...this.buildFormats(),
358
- ...this.buildTileMatrixLink(tileSet),
359
- ...this.getFormats().map((fmt) => this.buildResourceUrl(layerNameId, fmt)),
360
- ]);
356
+ for (const pipeline of pipelines) {
357
+ const formats = this.getFormats(pipeline.format);
358
+ const layerId = pipeline.default ? layerNameId : `${layerNameId}_${pipeline.name}`;
359
+ const layerTitle = pipeline.default ? tileSet.title : `${tileSet.title} ${pipeline.title}`;
360
+ const layer = V('Layer', [
361
+ V('ows:Title', layerTitle),
362
+ V('ows:Abstract', tileSet.description ?? ''),
363
+ V('ows:Identifier', layerId),
364
+ this.buildKeywords(tileSet),
365
+ ...[...matrixSets.values()].map((tms) => this.buildBoundingBoxFromImagery(tms, tileSet.layers)),
366
+ this.buildWgs84BoundingBox(webMercatorOrFirst, bounds),
367
+ this.buildStyle(),
368
+ ...formats.map((fmt) => V('Format', 'image/' + fmt)),
369
+ ...this.buildTileMatrixLink(tileSet),
370
+ ...formats.map((fmt) => this.buildResourceUrl(layerNameId, fmt, pipeline.default ? undefined : pipeline.name)),
371
+ ]);
372
+ layers.push(layer);
373
+ }
374
+ return layers;
375
+ }
376
+ getPipelines(tileSet, pipeline) {
377
+ if (tileSet.type !== TileSetType.Raster)
378
+ return [];
379
+ if (tileSet.outputs == null)
380
+ return [{ name: 'rgba', title: 'RGBA', default: true }];
381
+ if (pipeline)
382
+ return tileSet.outputs.filter((f) => f.name === pipeline);
383
+ return tileSet.outputs;
361
384
  }
362
385
  toAllImageryLayersVNode(configLayers) {
363
386
  if (configLayers == null)
@@ -402,7 +425,7 @@ export class WmtsCapabilities extends WmtsBuilder {
402
425
  const provider = this.toProviderVNode(this.provider);
403
426
  // Build TileSet Layer VNodes
404
427
  const layers = [];
405
- layers.push(this.toLayerVNode(this.tileSet));
428
+ layers.push(...this.toLayerVNode(this.tileSet));
406
429
  const contents = layers.concat(this.toAllImageryLayersVNode(this.configLayers));
407
430
  // Build TileMatrix Sets vNodes
408
431
  for (const tms of this.tileMatrixSets.values())
@@ -1 +1 @@
1
- {"version":3,"file":"wmts.capability.js","sourceRoot":"","sources":["../src/wmts.capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wmts.capability.js","sourceRoot":"","sources":["../src/wmts.capability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basemaps/lambda-tiler",
3
- "version": "8.11.1",
3
+ "version": "8.13.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/linz/basemaps.git",
@@ -22,12 +22,12 @@
22
22
  "types": "./build/index.d.ts",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "@basemaps/config": "^8.11.0",
26
- "@basemaps/config-loader": "^8.11.0",
25
+ "@basemaps/config": "^8.13.1",
26
+ "@basemaps/config-loader": "^8.12.3",
27
27
  "@basemaps/geo": "^8.9.0",
28
- "@basemaps/shared": "^8.9.3",
29
- "@basemaps/tiler": "^8.11.0",
30
- "@basemaps/tiler-sharp": "^8.11.1",
28
+ "@basemaps/shared": "^8.9.7",
29
+ "@basemaps/tiler": "^8.12.2",
30
+ "@basemaps/tiler-sharp": "^8.11.4",
31
31
  "@linzjs/geojson": "^8.0.0",
32
32
  "@linzjs/lambda": "^4.2.0",
33
33
  "@mapbox/vector-tile": "^2.0.3",
@@ -56,5 +56,5 @@
56
56
  "@types/pixelmatch": "^5.0.0",
57
57
  "pretty-json-log": "^1.0.0"
58
58
  },
59
- "gitHead": "f5ed12fcaad1b7df6011a4b39dafef2395bf0f6a"
59
+ "gitHead": "e9bb0101152463385db641a64975365b4f19b18e"
60
60
  }
@@ -55,8 +55,8 @@ export const TileSetElevation: ConfigTileSetRaster = {
55
55
  category: 'Elevation',
56
56
  layers: [
57
57
  {
58
- 2193: 'im_01FYWKAJ86W9P7RWM1VB62KD0H',
59
- 3857: 'im_01FYWKATAEK2ZTJQ2PX44Y0XNT',
58
+ 2193: 'im_01FYWKAJ86W9P7RWM1VB62KDEM',
59
+ 3857: 'im_01FYWKATAEK2ZTJQ2PX44Y0DEM',
60
60
  title: 'New Zealand 8m DEM (2012)',
61
61
  name: 'new-zealand_2012_dem_8m',
62
62
  },
@@ -82,6 +82,44 @@ export const TileSetHillshadeElevation: ConfigTileSetRaster = {
82
82
  outputs: [DefaultColorRampOutput],
83
83
  };
84
84
 
85
+ export const Imagery2193Elevation: ConfigImagery = {
86
+ v: 2,
87
+ id: 'im_01FYWKAJ86W9P7RWM1VB62KDEM',
88
+ name: 'ōtorohanga_urban_2021_0-1m_DEM',
89
+ title: 'Ōtorohanga 0.1m DEM (2021)',
90
+ category: 'Elevation',
91
+ projection: 2193,
92
+ tileMatrix: 'NZTM2000Quad',
93
+ uri: 's3://linz-basemaps/2193/ōtorohanga_urban_2021_0-1m_DEM/im_01FYWKAJ86W9P7RWM1VB62KDEM',
94
+ bounds: {
95
+ x: 1757351.3044652338,
96
+ y: 5766358.996410044,
97
+ width: 40970.247160854284,
98
+ height: 26905.833956381306,
99
+ },
100
+ files: [],
101
+ bands: [{ type: 'float32' }],
102
+ };
103
+
104
+ export const Imagery3857Elevation: ConfigImagery = {
105
+ v: 2,
106
+ id: 'im_01FYWKATAEK2ZTJQ2PX44Y0DEM',
107
+ name: 'ōtorohanga_urban_2021_0-1m_DEM',
108
+ title: 'Ōtorohanga 0.1m Urban DEM (2021)',
109
+ category: 'Elevation',
110
+ projection: 3857,
111
+ tileMatrix: 'WebMercatorQuad',
112
+ uri: 's3://linz-basemaps/3857/ōtorohanga_urban_2021_0-1m_DEM/im_01FYWKATAEK2ZTJQ2PX44Y0DEM',
113
+ bounds: {
114
+ x: 1757351.3044652338,
115
+ y: 5766358.996410044,
116
+ width: 40970.247160854284,
117
+ height: 26905.833956381306,
118
+ },
119
+ files: [],
120
+ bands: [{ type: 'float32' }],
121
+ };
122
+
85
123
  export const Imagery2193: ConfigImagery = {
86
124
  v: 2,
87
125
  id: 'im_01FYWKAJ86W9P7RWM1VB62KD0H',
@@ -7,7 +7,15 @@ import { V, VNodeElement } from '@basemaps/shared';
7
7
  import { roundNumbersInString } from '@basemaps/test/build/rounding.js';
8
8
 
9
9
  import { WmtsCapabilities } from '../wmts.capability.js';
10
- import { Imagery2193, Imagery3857, Provider, TileSetAerial } from './config.data.js';
10
+ import {
11
+ Imagery2193,
12
+ Imagery2193Elevation,
13
+ Imagery3857,
14
+ Imagery3857Elevation,
15
+ Provider,
16
+ TileSetAerial,
17
+ TileSetElevation,
18
+ } from './config.data.js';
11
19
 
12
20
  function tags(node: VNodeElement | null | undefined, tag: string): VNodeElement[] {
13
21
  if (node == null) return [];
@@ -88,7 +96,7 @@ describe('WmtsCapabilities', () => {
88
96
  });
89
97
 
90
98
  it('should support unicorns and rainbows', () => {
91
- const tileSet = { ...TileSetAerial };
99
+ const tileSet = structuredClone(TileSetAerial);
92
100
  tileSet.name = '🦄_🌈_2022_0-5m';
93
101
  tileSet.title = '🦄 🌈 Imagery (2022)';
94
102
  tileSet.description = '🦄 🌈 Description';
@@ -512,6 +520,14 @@ describe('WmtsCapabilities', () => {
512
520
  const rawB = wmtsB.toVNode();
513
521
  const layersB = tags(rawB, 'Layer');
514
522
  assert.equal(layersB.length, 1);
523
+ assert.deepEqual(
524
+ layersB.map((l) => l.find('ows:Identifier')?.textContent),
525
+ ['aerial'],
526
+ );
527
+ assert.deepEqual(
528
+ layersB.map((l) => l.find('ows:Title')?.textContent),
529
+ ['Aerial Imagery'],
530
+ );
515
531
  });
516
532
 
517
533
  it('should cover the entire WebMercatorBounds', () => {
@@ -527,7 +543,7 @@ describe('WmtsCapabilities', () => {
527
543
  imageBottomRight.bounds = { x: 0, y: -halfSize, width: halfSize, height: halfSize };
528
544
  imagery.set(imageBottomRight.id, imageBottomRight);
529
545
 
530
- const tileSet = { ...TileSetAerial };
546
+ const tileSet = structuredClone(TileSetAerial);
531
547
  tileSet.layers = [
532
548
  { 3857: imageTopLeft.id, name: 'a_top_left', title: 'A Top Left' },
533
549
  { 3857: imageBottomRight.id, name: 'b_bottom_right', title: 'B Bottom Right' },
@@ -573,7 +589,7 @@ describe('WmtsCapabilities', () => {
573
589
  imageBottomRight.bounds = { x: halfSize / 2, y: -halfSize, width: halfSize, height: halfSize };
574
590
  imagery.set(imageBottomRight.id, imageBottomRight);
575
591
 
576
- const tileSet = { ...TileSetAerial };
592
+ const tileSet = structuredClone(TileSetAerial);
577
593
  tileSet.layers = [{ 3857: imageBottomRight.id, name: 'b_bottom_right', title: 'B Bottom Right' }];
578
594
 
579
595
  const wmts = new WmtsCapabilities({
@@ -628,4 +644,41 @@ describe('WmtsCapabilities', () => {
628
644
  assert.equal(bboxC.children[0].textContent, '-180 -49.929855');
629
645
  assert.equal(bboxC.children[1].textContent, '180 2.938603');
630
646
  });
647
+
648
+ it('should export a layer per pipeline', () => {
649
+ const tileSet = structuredClone(TileSetElevation);
650
+
651
+ const wmts = new WmtsCapabilities({ httpBase: '' });
652
+ wmts.fromParams({
653
+ provider: Provider,
654
+ tileMatrix: [GoogleTms],
655
+ tileSet,
656
+ imagery: new Map([
657
+ [Imagery2193Elevation.id, Imagery2193Elevation],
658
+ [Imagery3857Elevation.id, Imagery3857Elevation],
659
+ ]),
660
+ formats: ['webp'],
661
+ });
662
+
663
+ const raw = wmts.toVNode();
664
+ const layers = [...(raw.find('Contents')?.tags('Layer') ?? [])];
665
+
666
+ assert.equal(layers.length, 2);
667
+ assert.deepEqual(
668
+ layers.map((l) => l.find('ows:Identifier')?.textContent),
669
+ ['elevation_terrain-rgb', 'elevation_color-ramp'],
670
+ );
671
+ assert.deepEqual(
672
+ layers.map((l) => l.find('ows:Title')?.textContent),
673
+ ['Elevation Imagery TerrainRGB', 'Elevation Imagery Color ramp'],
674
+ );
675
+
676
+ assert.deepEqual(
677
+ layers.map((l) => tags(l, 'Format').map((m) => m.textContent)),
678
+ [
679
+ ['image/png'], // Terrain RGB can only be used as PNG
680
+ ['image/webp'],
681
+ ],
682
+ );
683
+ });
631
684
  });
package/src/index.ts CHANGED
@@ -90,6 +90,7 @@ handler.router.get('/v1/fonts/:fontStack/:range.pbf', fontGet);
90
90
 
91
91
  // StyleJSON
92
92
  handler.router.get('/v1/styles/:styleName.json', styleJsonGet);
93
+
93
94
  /** @deprecated 2022-07-22 all styles should be being served from /v1/styles/:styleName.json */
94
95
  handler.router.get('/v1/tiles/:tileSet/:tileMatrix/style/:styleName.json', styleJsonGet);
95
96