ogcopenapis 1.0.3 → 1.1.1
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/CHANGELOG.md +42 -1
- package/README.md +35 -1
- package/lib/OgcOpenApiGetCapabilities.d.ts +15 -1
- package/lib/OgcOpenApiGetCapabilities.d.ts.map +1 -1
- package/lib/OgcOpenApiGetCapabilities.js +109 -126
- package/lib/OgcOpenApiGetCapabilities.js.map +1 -1
- package/lib/OgcOpenApiMapsModel.d.ts.map +1 -1
- package/lib/OgcOpenApiMapsModel.js.map +1 -1
- package/lib/OgcOpenApiTileMatrixTools.d.ts +6 -0
- package/lib/OgcOpenApiTileMatrixTools.d.ts.map +1 -1
- package/lib/OgcOpenApiTileMatrixTools.js +13 -0
- package/lib/OgcOpenApiTileMatrixTools.js.map +1 -1
- package/lib/OgcOpenApiTilesModel.d.ts +2 -0
- package/lib/OgcOpenApiTilesModel.d.ts.map +1 -1
- package/lib/OgcOpenApiTilesModel.js +3 -2
- package/lib/OgcOpenApiTilesModel.js.map +1 -1
- package/lib/OgcOpenApiVectorTilesModel.d.ts +1 -0
- package/lib/OgcOpenApiVectorTilesModel.d.ts.map +1 -1
- package/lib/OgcOpenApiVectorTilesModel.js +1 -1
- package/lib/OgcOpenApiVectorTilesModel.js.map +1 -1
- package/package.json +1 -1
- package/src/OgcOpenApiGetCapabilities.ts +115 -151
- package/src/OgcOpenApiMapsModel.ts +2 -0
- package/src/OgcOpenApiTileMatrixTools.ts +13 -0
- package/src/OgcOpenApiTilesModel.ts +9 -3
- package/src/OgcOpenApiVectorTilesModel.ts +4 -1
|
@@ -54,6 +54,19 @@ class OgcOpenApiTileMatrixTools {
|
|
|
54
54
|
const y = OgcOpenApiTileMatrixTools.isBottomLeft(tileMatrix) ? tileRow : tileMatrix.matrixHeight - 1 - tileRow;
|
|
55
55
|
return { level, x: tileCol, y };
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* The tiles of the dataset limited to some of its collections (OGC API Tiles, collections selection):
|
|
59
|
+
* collections=a,b. A comma inside an id is encoded, the commas between ids are not. A collections parameter
|
|
60
|
+
* that the URL already has is replaced. Without collections, the URL is returned as is.
|
|
61
|
+
*/
|
|
62
|
+
static setCollections(url, collections) {
|
|
63
|
+
if (!collections || collections.length === 0)
|
|
64
|
+
return url;
|
|
65
|
+
const [base, query] = url.split(/\?(.*)/s);
|
|
66
|
+
const kept = query ? query.split("&").filter(p => p !== "" && decodeURIComponent(p.split("=")[0]) !== "collections") : [];
|
|
67
|
+
kept.push("collections=" + collections.map(c => encodeURIComponent(c)).join(","));
|
|
68
|
+
return base + "?" + kept.join("&");
|
|
69
|
+
}
|
|
57
70
|
static appendQueryParameters(url, parameters) {
|
|
58
71
|
const query = Object.keys(parameters)
|
|
59
72
|
.filter(k => parameters[k] !== undefined && parameters[k] !== null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OgcOpenApiTileMatrixTools.js","sourceRoot":"","sources":["../src/OgcOpenApiTileMatrixTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAC,YAAY,EAAC,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,yBAAyB,EAAoC,MAAM,gCAAgC,CAAC;AAkB5G,MAAM,yBAAyB;IAEpB,MAAM,CAAC,cAAc,CAAC,OAAoB;QAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,EAAE,GAAG,sBAAsB,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,yBAAyB,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO;YACH,SAAS;YACT,MAAM,EAAE,yBAAyB,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;YAC9E,WAAW;YACX,UAAU,EAAE,YAAY,CAAC,MAAM;YAC/B,aAAa,EAAE,GAAG,CAAC,WAAW;YAC9B,UAAU,EAAE,GAAG,CAAC,YAAY;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY;SACf,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,mBAAmB,CAAC,QAAgB,EAAE,IAAwB,EAAE,IAAoB;QAC9F,MAAM,OAAO,GAAG,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,QAAQ;aACV,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC;aAC3C,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;aAChD,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAwB,EAAE,IAAoB;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACnH,OAAO,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,+EAA+E;IACxE,MAAM,CAAC,aAAa,CAAC,IAAwB,EAAE,YAAoB,EAAE,OAAe,EAAE,OAAe;QACxG,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;QACtE,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC;QAC/G,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,GAAW,EAAE,UAAoE;QACjH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACjF,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,GAAG,CAAC;QAC7B,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,UAAsB;QAC9C,OAAO,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ,IAAI,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;IACrH,CAAC;IAED,sGAAsG;IAC9F,MAAM,CAAC,mBAAmB,CAAC,SAA8B,EAAE,OAAoB,EAAE,UAAsB;QAC3G,MAAM,IAAI,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;QAClF,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;QACrF,MAAM,IAAI,GAAG,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;QAC7F,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,WAAiC;QAChE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,iEAAiE;QACjE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;CACJ;AAED,OAAO,EACH,yBAAyB,EAC5B,CAAA"}
|
|
1
|
+
{"version":3,"file":"OgcOpenApiTileMatrixTools.js","sourceRoot":"","sources":["../src/OgcOpenApiTileMatrixTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export interface OgcOpenApiTilesModelOptions {
|
|
|
16
16
|
};
|
|
17
17
|
transparent?: boolean;
|
|
18
18
|
bgcolor?: string;
|
|
19
|
+
collections?: string[];
|
|
19
20
|
proxify?: ProxifyFunction;
|
|
20
21
|
}
|
|
21
22
|
export interface OgcOpenApiTilesModelCreateOptions extends OgcOpenApiTilesModelOptions {
|
|
@@ -34,6 +35,7 @@ export declare class OgcOpenApiTilesModel extends WMTSTileSetModel {
|
|
|
34
35
|
private transparent;
|
|
35
36
|
private bgcolor;
|
|
36
37
|
private proxy;
|
|
38
|
+
private collections;
|
|
37
39
|
private tileMatrixSetLimits;
|
|
38
40
|
private ogcTileMatrices;
|
|
39
41
|
private tileGrid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OgcOpenApiTilesModel.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiTilesModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAA0C,MAAM,+CAA+C,CAAC;AAExH,OAAO,KAAK,EAAC,8BAA8B,EAAc,qCAAqC,EAAC,MAAM,iDAAiD,CAAC;AACvJ,OAAO,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,iDAAiD,CAAC;AACnF,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAChF,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAKnG,MAAM,WAAW,2BAA2B;IACxC,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"OgcOpenApiTilesModel.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiTilesModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAA0C,MAAM,+CAA+C,CAAC;AAExH,OAAO,KAAK,EAAC,8BAA8B,EAAc,qCAAqC,EAAC,MAAM,iDAAiD,CAAC;AACvJ,OAAO,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,iDAAiD,CAAC;AACnF,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAChF,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAKnG,MAAM,WAAW,2BAA2B;IACxC,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,OAAO,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,iCAAkC,SAAQ,2BAA2B;IAElF,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,iBAAiB;IACvB,SAAS,EAAE,8BAA8B,GAAG,qCAAqC,CAAC;IAElF,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxD;AAED,qBAAa,oBAAqB,SAAQ,gBAAgB;IACtD,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,OAAO,CAAC,eAAe,CAAyC;IAEhE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;WACU,iBAAiB,CAAC,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAezG;;OAEG;gBACS,OAAO,EAAE,iCAAiC,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAiDzF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAmBhE,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA4C/B,YAAY,CAAC,aAAa,EAAE,cAAc;CAgB7C"}
|
|
@@ -63,6 +63,7 @@ export class OgcOpenApiTilesModel extends WMTSTileSetModel {
|
|
|
63
63
|
this.tileMatrixSetLimits = options.tileMatrixSetLimits;
|
|
64
64
|
this.transparent = typeof options.transparent !== "undefined" ? options.transparent : true;
|
|
65
65
|
this.bgcolor = options.bgcolor;
|
|
66
|
+
this.collections = options.collections;
|
|
66
67
|
this.proxy = options.proxify;
|
|
67
68
|
this.modelDescriptor = {
|
|
68
69
|
source: options.baseURL,
|
|
@@ -80,10 +81,10 @@ export class OgcOpenApiTilesModel extends WMTSTileSetModel {
|
|
|
80
81
|
super.getTileURL(baseURL, tile);
|
|
81
82
|
if (targetUrl === null)
|
|
82
83
|
return null;
|
|
83
|
-
let tileUrl = OgcOpenApiTileMatrixTools.appendQueryParameters(targetUrl, {
|
|
84
|
+
let tileUrl = OgcOpenApiTileMatrixTools.setCollections(OgcOpenApiTileMatrixTools.appendQueryParameters(targetUrl, {
|
|
84
85
|
transparent: this.transparent,
|
|
85
86
|
bgcolor: this.transparent ? undefined : this.bgcolor
|
|
86
|
-
});
|
|
87
|
+
}), this.collections);
|
|
87
88
|
if (typeof this.proxy === "function") {
|
|
88
89
|
const proxyfied = this.proxy(tileUrl, {});
|
|
89
90
|
tileUrl = proxyfied.url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OgcOpenApiTilesModel.js","sourceRoot":"","sources":["../src/OgcOpenApiTilesModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAA0C,MAAM,+CAA+C,CAAC;AACxH,OAAO,EAAC,mBAAmB,EAAC,MAAM,kDAAkD,CAAC;AAErF,OAAO,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,iDAAiD,CAAC;AAGnF,OAAO,EAA0B,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"OgcOpenApiTilesModel.js","sourceRoot":"","sources":["../src/OgcOpenApiTilesModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OgcOpenApiVectorTilesModel.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiVectorTilesModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,8DAA8D,CAAC;AACtG,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAInD,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAKjH,MAAM,WAAW,iCAAiC;IAC9C,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAEzC,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"OgcOpenApiVectorTilesModel.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiVectorTilesModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,8DAA8D,CAAC;AACtG,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAInD,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAKjH,MAAM,WAAW,iCAAiC;IAC9C,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAEzC,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,qBAAa,0BAA2B,SAAQ,wBAAwB;IACpE,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,mBAAmB,CAAiC;gBAEhD,OAAO,EAAE,iCAAiC;IA0BtD,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAkBtF;;;;;OAKG;IACG,cAAc,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAYxG,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,MAAM,CAAC,WAAW;CAM7B"}
|
|
@@ -28,7 +28,7 @@ export class OgcOpenApiVectorTilesModel extends MapboxVectorTileSetModel {
|
|
|
28
28
|
requestHeaders: options.requestHeaders ? options.requestHeaders : {},
|
|
29
29
|
});
|
|
30
30
|
this.tileGrid = tileGrid;
|
|
31
|
-
this.tileTemplate = options.baseURL;
|
|
31
|
+
this.tileTemplate = OgcOpenApiTileMatrixTools.setCollections(options.baseURL, options.collections);
|
|
32
32
|
this.serverOptions = OgcOpenApiFetchTools.createFetchOptions({ originalUrl: options.baseURL, proxify: options.proxify });
|
|
33
33
|
this.tileMatrixSetLimits = options.tileMatrixSetLimits;
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OgcOpenApiVectorTilesModel.js","sourceRoot":"","sources":["../src/OgcOpenApiVectorTilesModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,8DAA8D,CAAC;AAEtG,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAC,oBAAoB,EAAC,MAAM,qDAAqD,CAAC;AAEzF,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAA0B,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAA0B,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"OgcOpenApiVectorTilesModel.js","sourceRoot":"","sources":["../src/OgcOpenApiVectorTilesModel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,6 +16,12 @@ export interface LinkType {
|
|
|
16
16
|
export const JSON_FG_MEDIA_TYPE = "application/vnd.ogc.fg+json";
|
|
17
17
|
export const JSON_FG_PROFILE = "http://www.opengis.net/def/profile/OGC/0/jsonfg";
|
|
18
18
|
|
|
19
|
+
// The conformance class of OGC API Tiles for the collections parameter of dataset tiles (OGC 20-057, Table 7)
|
|
20
|
+
export const COLLECTIONS_SELECTION_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collections-selection";
|
|
21
|
+
// The same class under another name, also accepted. Not in the standard: ldproxy declares it so, and supports the
|
|
22
|
+
// collections parameter as the standard requires. To be removed once ldproxy declares the class of the standard
|
|
23
|
+
export const COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS = ["http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collection-selection"];
|
|
24
|
+
|
|
19
25
|
export interface TileMatrix {
|
|
20
26
|
id: string,
|
|
21
27
|
scaleDenominator: number;
|
|
@@ -104,6 +110,8 @@ export interface OgcOpenApiCapabilitiesObject {
|
|
|
104
110
|
tileMatrixSetsUrl?: string;
|
|
105
111
|
// The links of the landing page, to the tilesets and styles of the dataset among others
|
|
106
112
|
links?: LinkType[];
|
|
113
|
+
// The conformance classes the server declares, empty when it declares none or they cannot be read
|
|
114
|
+
conformsTo?: string[];
|
|
107
115
|
serverOptions: FetchServerOptions;
|
|
108
116
|
}
|
|
109
117
|
|
|
@@ -179,149 +187,97 @@ export interface OgcOpenApiGetCapabilitiesFromURL {
|
|
|
179
187
|
|
|
180
188
|
export class OgcOpenApiGetCapabilities {
|
|
181
189
|
|
|
182
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Reads the landing page of a server, its collections, the API document and the conformance classes, asking for
|
|
192
|
+
* JSON. Rejects with an Error when the landing page or the collections cannot be read, and with the error of the
|
|
193
|
+
* request as it is when it fails, an AbortError included. The API document and the conformance classes are
|
|
194
|
+
* optional: without them the capabilities have no version and declare no conformance classes.
|
|
195
|
+
*/
|
|
196
|
+
public static async fromURL(inputRequest: string, fromUrlOptions?: OgcOpenApiGetCapabilitiesFromURL): Promise<OgcOpenApiCapabilitiesObject> {
|
|
183
197
|
const options: OgcOpenApiGetCapabilitiesFromURL = fromUrlOptions ? fromUrlOptions : {};
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
id: name,
|
|
260
|
-
name,
|
|
261
|
-
title: collection.title,
|
|
262
|
-
keywords: collection.keywords
|
|
263
|
-
? collection.keywords
|
|
264
|
-
: [],
|
|
265
|
-
defaultReference: 'CRS:84',
|
|
266
|
-
links: collection.links,
|
|
267
|
-
outputFormats: options.filterCollectionsByLinkType ?
|
|
268
|
-
this.filterCollectionLinks(collection.links, options.filterCollectionsByLinkType).map(link => this.detectTypeFormat(link))
|
|
269
|
-
:
|
|
270
|
-
collection.links.map(link => this.detectTypeFormat(link))
|
|
271
|
-
,
|
|
272
|
-
extent: collection.extent,
|
|
273
|
-
...collectionCrsObject
|
|
274
|
-
};
|
|
275
|
-
return layer;
|
|
276
|
-
}
|
|
277
|
-
);
|
|
278
|
-
// console.log(featureTypes);
|
|
279
|
-
const o: OgcOpenApiCapabilitiesObject = {
|
|
280
|
-
name: '',
|
|
281
|
-
collections: foundCollections.map(col=>({...col, crs: col.crs ? col.crs : [], links: col.links.map(l => resolveLink(l, collectionsLink.href))})),
|
|
282
|
-
version: responseOpenApi ? responseOpenApi.openapi : '',
|
|
283
|
-
service: '',
|
|
284
|
-
info: responseOpenApi ? responseOpenApi.info : {},
|
|
285
|
-
...crsArray,
|
|
286
|
-
serverOptions: serverOptions,
|
|
287
|
-
links: jsonObject.links.map(l => resolveLink(l, requestUrl)),
|
|
288
|
-
baseUrl,
|
|
289
|
-
tileMatrixSetsUrl: linkToTileMatrixSets ? resolveLink(linkToTileMatrixSets, requestUrl).href : undefined
|
|
290
|
-
};
|
|
291
|
-
resolve(o);
|
|
292
|
-
});
|
|
293
|
-
} else {
|
|
294
|
-
reject("Invalid format: (property 'links' contains no links with rel=data");
|
|
295
|
-
}
|
|
296
|
-
}, ()=>{
|
|
297
|
-
reject("Not JSON")
|
|
298
|
-
});
|
|
299
|
-
} else {
|
|
300
|
-
reject(response.status);
|
|
301
|
-
}
|
|
302
|
-
},
|
|
303
|
-
(err) => {
|
|
304
|
-
reject(err);
|
|
305
|
-
}
|
|
306
|
-
);
|
|
307
|
-
});
|
|
198
|
+
// The landing page, with the query it was given, such as an api key. baseUrl is without it
|
|
199
|
+
const baseUrl = OgcOpenApiFetchTools.cleanUrl(inputRequest);
|
|
200
|
+
const requestUrl = OgcOpenApiFetchTools.appendPath(inputRequest, "");
|
|
201
|
+
const serverOptions = OgcOpenApiFetchTools.createFetchOptions({originalUrl: requestUrl, proxify: options.proxify});
|
|
202
|
+
// The requests before the capabilities exist
|
|
203
|
+
const server = {serverOptions} as OgcOpenApiCapabilitiesObject;
|
|
204
|
+
const getJson = (href: string, accept?: string) =>
|
|
205
|
+
OgcOpenApiGetCapabilities.fetchJson(server, href, options, accept).catch(e => {
|
|
206
|
+
throw OgcOpenApiGetCapabilities.toError(e, href);
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
const landing = await getJson(requestUrl);
|
|
210
|
+
if (!landing || !Array.isArray(landing.links)) throw new Error("Invalid format: (property 'links' is missing) in " + requestUrl);
|
|
211
|
+
const links: OgcOpenApiCapabilitiesCollectionServiceLinkType[] = landing.links;
|
|
212
|
+
const linkToData = links.find(link => link.rel === 'data' && link.type === 'application/json') || links.find(link => link.rel === 'data');
|
|
213
|
+
if (!linkToData) throw new Error("Invalid format: (property 'links' contains no links with rel=data) in " + requestUrl);
|
|
214
|
+
const linkToApi = links.find(link => (link.rel === 'service-desc' || link.rel === 'service') && (link.type || "").indexOf('openapi+json') > -1);
|
|
215
|
+
const tilingSchemes = links.filter(link => isRel(link, 'tiling-schemes'));
|
|
216
|
+
const linkToTileMatrixSets = tilingSchemes.find(link => link.type === 'application/json') || tilingSchemes.find(link => !link.type);
|
|
217
|
+
const conformance = links.find(link => isRel(link, 'conformance'));
|
|
218
|
+
// The links of the landing page are relative to it, the links of the collections to /collections
|
|
219
|
+
const resolveLink = (link: OgcOpenApiCapabilitiesCollectionServiceLinkType, documentUrl: string) =>
|
|
220
|
+
({...link, href: OgcOpenApiFetchTools.resolveUrl(link.href, documentUrl, serverOptions)});
|
|
221
|
+
const collectionsLink = resolveLink(linkToData, requestUrl);
|
|
222
|
+
|
|
223
|
+
// The collections are required, the API document (in its own media type) and the conformance classes are not
|
|
224
|
+
const [collectionsDocument, api, conformsTo] = await Promise.all([
|
|
225
|
+
getJson(collectionsLink.href),
|
|
226
|
+
linkToApi ? getJson(resolveLink(linkToApi, requestUrl).href, linkToApi.type).catch(() => undefined) : Promise.resolve(undefined),
|
|
227
|
+
conformance ?
|
|
228
|
+
getJson(resolveLink(conformance, requestUrl).href).then(data => Array.isArray(data.conformsTo) ? data.conformsTo as string[] : [], () => [] as string[]) :
|
|
229
|
+
Promise.resolve([] as string[]),
|
|
230
|
+
]);
|
|
231
|
+
if (!collectionsDocument || !Array.isArray(collectionsDocument.collections)) {
|
|
232
|
+
throw new Error("Invalid format: (property 'collections' is missing) in " + collectionsLink.href);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const crsArray = typeof collectionsDocument.crs !== "undefined" ? {crs: collectionsDocument.crs} : {};
|
|
236
|
+
const foundCollections = collectionsDocument.collections
|
|
237
|
+
.filter(c => options.filterCollectionsByLinkType ?
|
|
238
|
+
OgcOpenApiGetCapabilities.filterCollectionLinks(c.links, options.filterCollectionsByLinkType).length > 0 : true)
|
|
239
|
+
.map((collection: any) => {
|
|
240
|
+
const name = typeof collection.id !== 'undefined' ? collection.id : collection.name;
|
|
241
|
+
const collectionCrsObject = {} as any;
|
|
242
|
+
if (typeof collection.crs !== "undefined") collectionCrsObject.crs = collection.crs;
|
|
243
|
+
if (typeof collection.storageCrs !== "undefined") collectionCrsObject.storageCrs = collection.storageCrs;
|
|
244
|
+
const layer: OgcOpenApiCapabilitiesCollection = {
|
|
245
|
+
description: collection.description,
|
|
246
|
+
id: name,
|
|
247
|
+
name,
|
|
248
|
+
title: collection.title,
|
|
249
|
+
keywords: collection.keywords ? collection.keywords : [],
|
|
250
|
+
defaultReference: 'CRS:84',
|
|
251
|
+
links: collection.links,
|
|
252
|
+
outputFormats: options.filterCollectionsByLinkType ?
|
|
253
|
+
this.filterCollectionLinks(collection.links, options.filterCollectionsByLinkType).map(link => this.detectTypeFormat(link)) :
|
|
254
|
+
collection.links.map(link => this.detectTypeFormat(link)),
|
|
255
|
+
extent: collection.extent,
|
|
256
|
+
...collectionCrsObject
|
|
257
|
+
};
|
|
258
|
+
return layer;
|
|
259
|
+
});
|
|
260
|
+
return {
|
|
261
|
+
name: '',
|
|
262
|
+
collections: foundCollections.map(col => ({...col, crs: col.crs ? col.crs : [], links: col.links.map(l => resolveLink(l, collectionsLink.href))})),
|
|
263
|
+
version: api ? api.openapi : '',
|
|
264
|
+
service: '',
|
|
265
|
+
info: api ? api.info : {},
|
|
266
|
+
...crsArray,
|
|
267
|
+
serverOptions: serverOptions,
|
|
268
|
+
links: links.map(l => resolveLink(l, requestUrl)),
|
|
269
|
+
baseUrl,
|
|
270
|
+
tileMatrixSetsUrl: linkToTileMatrixSets ? resolveLink(linkToTileMatrixSets, requestUrl).href : undefined,
|
|
271
|
+
conformsTo,
|
|
272
|
+
};
|
|
308
273
|
}
|
|
309
274
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
} else {
|
|
317
|
-
resolve(undefined);
|
|
318
|
-
}
|
|
319
|
-
},
|
|
320
|
-
() => {
|
|
321
|
-
resolve(undefined);
|
|
322
|
-
}
|
|
323
|
-
);
|
|
324
|
-
});
|
|
275
|
+
// An Error for a failed request of fromURL: the error of fetch as it is, such as an AbortError, otherwise its message
|
|
276
|
+
// and the URL. An error of fetch can come from another realm (a DOMException of jsdom is not instanceof Error), so
|
|
277
|
+
// anything with a name and a message is kept; the {error, message} of fetchJson has no name
|
|
278
|
+
private static toError(e: any, href: string): Error {
|
|
279
|
+
if (e instanceof Error || (e && typeof e.name === "string" && typeof e.message === "string")) return e;
|
|
280
|
+
return new Error((e && e.message ? e.message : String(e)) + " for " + href);
|
|
325
281
|
}
|
|
326
282
|
|
|
327
283
|
static filterCollectionLinks(
|
|
@@ -437,17 +393,15 @@ export class OgcOpenApiGetCapabilities {
|
|
|
437
393
|
}
|
|
438
394
|
|
|
439
395
|
// GETs a JSON document. Servers answer JSON for the Accept header, or for the f parameter that their links carry.
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
}
|
|
449
|
-
throw {error: true, message: err.message};
|
|
450
|
-
}
|
|
396
|
+
// accept is the media type to ask for, application/json by default; requestHeaders can replace it. A failed request
|
|
397
|
+
// rejects with the error of fetch as it is, such as an AbortError
|
|
398
|
+
private static async fetchJson(capabilities: OgcOpenApiCapabilitiesObject, href: string, options?: {credentials?: boolean, requestHeaders?: RequestHeaders},
|
|
399
|
+
accept = "application/json") {
|
|
400
|
+
const result = await OgcOpenApiFetchTools.fetch(href, {
|
|
401
|
+
method: "GET",
|
|
402
|
+
credentials: options?.credentials ? "same-origin" : "omit",
|
|
403
|
+
headers: {Accept: accept, ...(options?.requestHeaders ? options.requestHeaders : {})}
|
|
404
|
+
}, capabilities.serverOptions);
|
|
451
405
|
if (result.status !== 200) throw {error: true, message: "Invalid response: " + result.status};
|
|
452
406
|
try {
|
|
453
407
|
return await result.json();
|
|
@@ -486,6 +440,16 @@ export class OgcOpenApiGetCapabilities {
|
|
|
486
440
|
return link ? link.href : '';
|
|
487
441
|
}
|
|
488
442
|
|
|
443
|
+
/**
|
|
444
|
+
* Whether the server supports the collections parameter of dataset tiles (OGC API Tiles, collections selection),
|
|
445
|
+
* as its conformance classes declare: the class of the standard, or the variant of COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS
|
|
446
|
+
*/
|
|
447
|
+
public static supportsCollectionSelection(capabilities: OgcOpenApiCapabilitiesObject | null) {
|
|
448
|
+
const conformsTo = capabilities && capabilities.conformsTo ? capabilities.conformsTo : [];
|
|
449
|
+
return conformsTo.indexOf(COLLECTIONS_SELECTION_CONFORMANCE) > -1 ||
|
|
450
|
+
COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS.some(variant => conformsTo.indexOf(variant) > -1);
|
|
451
|
+
}
|
|
452
|
+
|
|
489
453
|
/**
|
|
490
454
|
* Whether the server tiles the dataset as a whole, all its collections in each tile, for linkType Tiles or VectorTiles
|
|
491
455
|
*/
|
|
@@ -21,6 +21,8 @@ interface OgcOpenApiMapsModelConstructorOptions {
|
|
|
21
21
|
samplingMode?: RasterSamplingMode;
|
|
22
22
|
credentials?: boolean;
|
|
23
23
|
requestHeaders?: { [p: string]: string };
|
|
24
|
+
// The f value of the requests, as the server names its formats (pygeoapi: png), not a media type (image/png), unlike
|
|
25
|
+
// the format of OgcOpenApiTilesModel. Best left out: the f value of the map link, in baseURL, is then used
|
|
24
26
|
format?: string;
|
|
25
27
|
reverseAxis?: boolean;
|
|
26
28
|
datetime?: string;
|
|
@@ -74,6 +74,19 @@ class OgcOpenApiTileMatrixTools {
|
|
|
74
74
|
return {level, x: tileCol, y};
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
/**
|
|
78
|
+
* The tiles of the dataset limited to some of its collections (OGC API Tiles, collections selection):
|
|
79
|
+
* collections=a,b. A comma inside an id is encoded, the commas between ids are not. A collections parameter
|
|
80
|
+
* that the URL already has is replaced. Without collections, the URL is returned as is.
|
|
81
|
+
*/
|
|
82
|
+
public static setCollections(url: string, collections?: string[]): string {
|
|
83
|
+
if (!collections || collections.length === 0) return url;
|
|
84
|
+
const [base, query] = url.split(/\?(.*)/s);
|
|
85
|
+
const kept = query ? query.split("&").filter(p => p !== "" && decodeURIComponent(p.split("=")[0]) !== "collections") : [];
|
|
86
|
+
kept.push("collections=" + collections.map(c => encodeURIComponent(c)).join(","));
|
|
87
|
+
return base + "?" + kept.join("&");
|
|
88
|
+
}
|
|
89
|
+
|
|
77
90
|
public static appendQueryParameters(url: string, parameters: { [key: string]: string | number | boolean | undefined }): string {
|
|
78
91
|
const query = Object.keys(parameters)
|
|
79
92
|
.filter(k => parameters[k] !== undefined && parameters[k] !== null)
|
|
@@ -19,6 +19,9 @@ export interface OgcOpenApiTilesModelOptions {
|
|
|
19
19
|
requestHeaders?: { [p: string]: string };
|
|
20
20
|
transparent?: boolean;
|
|
21
21
|
bgcolor?: string;
|
|
22
|
+
// For a tileset of the dataset: only these collections in each tile. The server must support collections
|
|
23
|
+
// selection, see OgcOpenApiGetCapabilities.supportsCollectionSelection
|
|
24
|
+
collections?: string[];
|
|
22
25
|
|
|
23
26
|
proxify?: ProxifyFunction
|
|
24
27
|
}
|
|
@@ -28,7 +31,8 @@ export interface OgcOpenApiTilesModelCreateOptions extends OgcOpenApiTilesModelO
|
|
|
28
31
|
tileMatrixSetLimits?: TileMatrixLimits[];
|
|
29
32
|
// The data extent in CRS:84, [minX, minY, maxX, maxY], such as the extent of the collection
|
|
30
33
|
extent?: number[];
|
|
31
|
-
// The media type of the tiles, image/png by default
|
|
34
|
+
// The media type of the tiles, image/png by default, such as the type of the tile link. Unlike the format of
|
|
35
|
+
// OgcOpenApiMapsModel, which is an f value
|
|
32
36
|
format?: string;
|
|
33
37
|
}
|
|
34
38
|
|
|
@@ -43,6 +47,7 @@ export class OgcOpenApiTilesModel extends WMTSTileSetModel {
|
|
|
43
47
|
private transparent: boolean;
|
|
44
48
|
private bgcolor: string | undefined;
|
|
45
49
|
private proxy: ProxifyFunction;
|
|
50
|
+
private collections: string[] | undefined;
|
|
46
51
|
private tileMatrixSetLimits: TileMatrixLimits[] | undefined;
|
|
47
52
|
// Not tileMatrices: WMTSTileSetModel keeps the tile matrix ids in that property
|
|
48
53
|
private ogcTileMatrices: { id: string, matrixHeight: number }[];
|
|
@@ -109,6 +114,7 @@ export class OgcOpenApiTilesModel extends WMTSTileSetModel {
|
|
|
109
114
|
this.tileMatrixSetLimits = options.tileMatrixSetLimits;
|
|
110
115
|
this.transparent = typeof options.transparent !== "undefined" ? options.transparent : true;
|
|
111
116
|
this.bgcolor = options.bgcolor;
|
|
117
|
+
this.collections = options.collections;
|
|
112
118
|
|
|
113
119
|
this.proxy = options.proxify;
|
|
114
120
|
|
|
@@ -127,10 +133,10 @@ export class OgcOpenApiTilesModel extends WMTSTileSetModel {
|
|
|
127
133
|
OgcOpenApiTileMatrixTools.resolveTileTemplate(this.ogcTemplate, this.tileGrid, tile) :
|
|
128
134
|
super.getTileURL(baseURL, tile);
|
|
129
135
|
if (targetUrl === null) return null;
|
|
130
|
-
let tileUrl = OgcOpenApiTileMatrixTools.appendQueryParameters(targetUrl, {
|
|
136
|
+
let tileUrl = OgcOpenApiTileMatrixTools.setCollections(OgcOpenApiTileMatrixTools.appendQueryParameters(targetUrl, {
|
|
131
137
|
transparent: this.transparent,
|
|
132
138
|
bgcolor: this.transparent ? undefined : this.bgcolor
|
|
133
|
-
});
|
|
139
|
+
}), this.collections);
|
|
134
140
|
if (typeof this.proxy === "function") {
|
|
135
141
|
const proxyfied = this.proxy(tileUrl, {});
|
|
136
142
|
tileUrl = proxyfied.url;
|
|
@@ -19,6 +19,9 @@ export interface OgcOpenApiVectorTilesModelOptions {
|
|
|
19
19
|
tileMatrixSetLimits?: TileMatrixLimits[];
|
|
20
20
|
// The data extent, defaults to the extent of the tile matrix set
|
|
21
21
|
bounds?: Bounds;
|
|
22
|
+
// For a tileset of the dataset: only these collections in each tile. The server must support collections
|
|
23
|
+
// selection, see OgcOpenApiGetCapabilities.supportsCollectionSelection
|
|
24
|
+
collections?: string[];
|
|
22
25
|
styleUrl?: string;
|
|
23
26
|
|
|
24
27
|
proxify?: ProxifyFunction
|
|
@@ -51,7 +54,7 @@ export class OgcOpenApiVectorTilesModel extends MapboxVectorTileSetModel {
|
|
|
51
54
|
requestHeaders: options.requestHeaders ? options.requestHeaders : {},
|
|
52
55
|
});
|
|
53
56
|
this.tileGrid = tileGrid;
|
|
54
|
-
this.tileTemplate = options.baseURL;
|
|
57
|
+
this.tileTemplate = OgcOpenApiTileMatrixTools.setCollections(options.baseURL, options.collections);
|
|
55
58
|
this.serverOptions = OgcOpenApiFetchTools.createFetchOptions({originalUrl: options.baseURL, proxify: options.proxify});
|
|
56
59
|
this.tileMatrixSetLimits = options.tileMatrixSetLimits;
|
|
57
60
|
}
|