ogcopenapis 1.0.2 → 1.1.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 (36) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/README.md +34 -3
  3. package/lib/OgcOpenApiFeatureStore.d.ts +3 -1
  4. package/lib/OgcOpenApiFeatureStore.d.ts.map +1 -1
  5. package/lib/OgcOpenApiFeatureStore.js +22 -37
  6. package/lib/OgcOpenApiFeatureStore.js.map +1 -1
  7. package/lib/OgcOpenApiFetchTools.d.ts +9 -0
  8. package/lib/OgcOpenApiFetchTools.d.ts.map +1 -1
  9. package/lib/OgcOpenApiFetchTools.js +15 -0
  10. package/lib/OgcOpenApiFetchTools.js.map +1 -1
  11. package/lib/OgcOpenApiGetCapabilities.d.ts +16 -0
  12. package/lib/OgcOpenApiGetCapabilities.d.ts.map +1 -1
  13. package/lib/OgcOpenApiGetCapabilities.js +39 -3
  14. package/lib/OgcOpenApiGetCapabilities.js.map +1 -1
  15. package/lib/OgcOpenApiStyleTools.js +1 -1
  16. package/lib/OgcOpenApiStyleTools.js.map +1 -1
  17. package/lib/OgcOpenApiTileMatrixTools.d.ts +6 -0
  18. package/lib/OgcOpenApiTileMatrixTools.d.ts.map +1 -1
  19. package/lib/OgcOpenApiTileMatrixTools.js +13 -0
  20. package/lib/OgcOpenApiTileMatrixTools.js.map +1 -1
  21. package/lib/OgcOpenApiTilesModel.d.ts +2 -0
  22. package/lib/OgcOpenApiTilesModel.d.ts.map +1 -1
  23. package/lib/OgcOpenApiTilesModel.js +3 -2
  24. package/lib/OgcOpenApiTilesModel.js.map +1 -1
  25. package/lib/OgcOpenApiVectorTilesModel.d.ts +1 -0
  26. package/lib/OgcOpenApiVectorTilesModel.d.ts.map +1 -1
  27. package/lib/OgcOpenApiVectorTilesModel.js +1 -1
  28. package/lib/OgcOpenApiVectorTilesModel.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/OgcOpenApiFeatureStore.ts +21 -35
  31. package/src/OgcOpenApiFetchTools.ts +17 -0
  32. package/src/OgcOpenApiGetCapabilities.ts +47 -3
  33. package/src/OgcOpenApiStyleTools.ts +1 -1
  34. package/src/OgcOpenApiTileMatrixTools.ts +13 -0
  35. package/src/OgcOpenApiTilesModel.ts +7 -2
  36. package/src/OgcOpenApiVectorTilesModel.ts +4 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,34 @@ Each pull request adds its changes under Unreleased. A release renames Unrelease
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [1.1.0] - 2026-10-27
12
+
13
+ ### Added
14
+ - The tiles of the dataset limited to some of its collections (OGC API Tiles, collections selection): the option
15
+ `collections` of OgcOpenApiTilesModel and OgcOpenApiVectorTilesModel, which request `collections=a,b`.
16
+ - `fromURL` reads the conformance classes of the server, in `capabilities.conformsTo`.
17
+ - `supportsCollectionSelection(capabilities)`: whether the server declares collections selection, by the conformance
18
+ class of the standard (`COLLECTIONS_SELECTION_CONFORMANCE`), or by the name ldproxy declares it under, which is not in
19
+ the standard (`COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS`).
20
+ - Demo: the collections in the tiles of the dataset, when the server supports collections selection.
21
+
22
+ ## [1.0.3] - 2026-10-27
23
+
24
+ ### Fixed
25
+ - OgcOpenApiFeatureStore keeps every parameter of the items link, such as `profile` or an api key, instead of only
26
+ `f`. A parameter of a request replaces the one of the link with the same name.
27
+ - OgcOpenApiFeatureStore encodes the values of its queries: a CQL `filter` with spaces, `&` or `#`, or a `datetime`
28
+ interval, no longer gives a malformed URL. `get(id)` encodes the id.
29
+ - `fromURL` requests the landing page with the query of the URL it is given.
30
+ - The tileset URL built from a tile matrix set id, and the styles URL built from the self link of a collection, keep
31
+ the query of the link they start from.
32
+
33
+ ### Added
34
+ - `isJsonFgLink`, `JSON_FG_MEDIA_TYPE` and `JSON_FG_PROFILE`: JSON-FG links, by their media type or by the JSON-FG
35
+ profile of an `application/geo+json` link. `outputFormats` of a collection reports JSON-FG as
36
+ `application/vnd.ogc.fg+json`. Reading JSON-FG needs a JSON-FG codec, which the application provides.
37
+ - Demo: a format for features. JSON-FG is listed, but cannot be selected yet.
38
+
11
39
  ## [1.0.2] - 2026-10-27
12
40
 
13
41
  ### Fixed
@@ -68,7 +96,9 @@ Each pull request adds its changes under Unreleased. A release renames Unrelease
68
96
 
69
97
  See the [git history](https://github.com/felipecarrillo100/ogcopenapis/commits/main).
70
98
 
71
- [Unreleased]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.2...HEAD
99
+ [Unreleased]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.1.0...HEAD
100
+ [1.1.0]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.3...v1.1.0
101
+ [1.0.3]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.2...v1.0.3
72
102
  [1.0.2]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.1...v1.0.2
73
103
  [1.0.1]: https://github.com/felipecarrillo100/ogcopenapis/compare/v1.0.0...v1.0.1
74
104
  [1.0.0]: https://github.com/felipecarrillo100/ogcopenapis/releases/tag/v1.0.0
package/README.md CHANGED
@@ -143,8 +143,9 @@ import {OgcOpenApiFeatureStore} from "ogcopenapis/OgcOpenApiFeatureStore";
143
143
 
144
144
  function createFeatureLayer(collection: OgcOpenApiCapabilitiesCollection) {
145
145
  const items = OgcOpenApiGetCapabilities.filterCollectionLinks(collection.links, CollectionLinkType.Items);
146
- // GeoJSON, the encoding that GeoJsonCodec reads
147
- const link = items.find(l => l.type === "application/geo+json") || items.find(l => l.type === "application/json");
146
+ // GeoJSON, the encoding that GeoJsonCodec reads. Not JSON-FG, which some servers also type application/geo+json
147
+ const geoJson = items.filter(l => !OgcOpenApiGetCapabilities.isJsonFgLink(l));
148
+ const link = geoJson.find(l => l.type === "application/geo+json") || geoJson.find(l => l.type === "application/json");
148
149
  if (!link) throw new Error("Collection " + collection.id + " has no GeoJSON items");
149
150
  // CRS84: OGC API Features requires every server to support it
150
151
  const crs = CRS84;
@@ -161,7 +162,13 @@ function createFeatureLayer(collection: OgcOpenApiCapabilitiesCollection) {
161
162
  return new FeatureLayer(model, {label: collection.title || collection.id, loadingStrategy: new LoadSpatially()});
162
163
  }
163
164
  ```
164
- The store requests the features in view, a query does not follow the `next` links of a response yet (no paging).
165
+ The store requests the features in view, a query does not follow the `next` links of a response yet (no paging). It
166
+ keeps the parameters of the items link, such as `profile` or an api key, and encodes the values of its own.
167
+
168
+ JSON-FG (OGC Features and Geometries JSON) needs a JSON-FG codec, which LuciadRIA does not have yet. Servers offer it as
169
+ `application/vnd.ogc.fg+json`, or as `application/geo+json` with the JSON-FG profile (ldproxy); `isJsonFgLink` tells them
170
+ apart, and `outputFormats` of a collection reports JSON-FG as `application/vnd.ogc.fg+json`. To read JSON-FG, pass a
171
+ JSON-FG codec of your own to the store with that link.
165
172
 
166
173
  Keep the ids of the server: `generateIDs: false`. Each feature of an OGC API Features collection has an id, `get(id)` of
167
174
  the store requests `items/{id}` with it, and LuciadRIA updates only the features that changed when the ids stay the same
@@ -309,6 +316,30 @@ if (OgcOpenApiGetCapabilities.hasDatasetTileSets(capabilities, CollectionLinkTyp
309
316
  }
310
317
  ```
311
318
 
319
+ The tiles of the dataset can hold only some of its collections, when the server supports the `collections` parameter
320
+ (OGC API Tiles, collections selection). Both tiles models take them as `collections`:
321
+ ```typescript
322
+ if (OgcOpenApiGetCapabilities.supportsCollectionSelection(capabilities)) {
323
+ const model = new OgcOpenApiVectorTilesModel({
324
+ tileMatrix,
325
+ baseURL: link.href,
326
+ collection: "dataset",
327
+ tileMatrixSetLimits: tileSet.tileMatrixSetLimits,
328
+ // The ids of the collections, as capabilities.collections lists them
329
+ collections: ["abschnitteaeste"],
330
+ });
331
+ }
332
+ ```
333
+ * `supportsCollectionSelection` reads the conformance classes of the server (`capabilities.conformsTo`): the class of the
334
+ standard, `http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collections-selection` (OGC 20-057, Table 7).
335
+ * It also accepts `http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collection-selection`, a name that is not in the
336
+ standard: ldproxy declares the class so, and supports the parameter as the standard requires.
337
+ `COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS` lists it, to be removed once ldproxy declares the class of the standard.
338
+ * The models do not check the conformance classes: they request the collections they are given. Use `collections` for
339
+ tilesets of the dataset only, the tiles of a collection hold that collection.
340
+ * A comma inside a collection id is encoded, the commas between ids are not. A `collections` parameter in the tile URL
341
+ template is replaced.
342
+
312
343
  ### Styles
313
344
  * LuciadRIA reads the Mapbox GL encoding of OGC API Styles only, not SLD or other encodings.
314
345
  * A server can publish a stylesheet per tile matrix set, because zoom levels depend on it. `pickStylesheet` picks the one for the tile matrix set in use.
@@ -67,6 +67,7 @@ export declare class OgcOpenApiFeatureStore extends Store {
67
67
  private codec;
68
68
  private baseUrl;
69
69
  private dataFormat;
70
+ private linkParameters;
70
71
  private customCrs;
71
72
  private dataBounds;
72
73
  private requestHeaders;
@@ -83,12 +84,13 @@ export declare class OgcOpenApiFeatureStore extends Store {
83
84
  isOperationSupported(methodName: StoreOperationName): boolean;
84
85
  get(id: number | string, optionsInput?: any): Promise<Feature>;
85
86
  query(receivedQuery?: OgcOpenApiFeatureStoreQueryOptions, options?: QueryOptions): Cursor | Promise<Cursor>;
87
+ private withQuery;
86
88
  private fetchFeatures;
87
89
  spatialQuery(bounds?: Bounds, receivedQuery?: OgcOpenApiFeatureStoreQueryOptions, options?: QueryOptions): Promise<Cursor> | Cursor;
88
90
  private static getCRS84BoundingBox;
89
91
  private static targetBounds;
90
92
  private static cleanUrl;
91
- private static dataFormatInQuery;
93
+ private static getQueryParameters;
92
94
  }
93
95
  export type { OgcOpenApiFeaturesCodecDecodeOptions };
94
96
  //# sourceMappingURL=OgcOpenApiFeatureStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiFeatureStore.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiFeatureStore.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,8 @@ export class OgcOpenApiFeatureStore extends Store {
21
21
  const predictedFeatureUrl = this.dataUrl.replace(/\.[^/.]+$/, "");
22
22
  this.featureUrl = options.featureUrl ? OgcOpenApiFeatureStore.cleanUrl(options.featureUrl, true) : OgcOpenApiFeatureStore.cleanUrl(predictedFeatureUrl, true);
23
23
  this.baseUrl = OgcOpenApiFeatureStore.cleanUrl(this.dataUrl);
24
- this.dataFormat = OgcOpenApiFeatureStore.dataFormatInQuery(this.dataUrl);
24
+ this.linkParameters = OgcOpenApiFeatureStore.getQueryParameters(this.dataUrl);
25
+ this.dataFormat = this.linkParameters.f;
25
26
  this.customCrs = options.crs === "http://www.opengis.net/def/crs/OGC/1.3/CRS84" ? undefined : options.crs;
26
27
  this.codec = options.codec;
27
28
  this.requestHeaders = options.requestHeaders ? options.requestHeaders : {};
@@ -57,16 +58,7 @@ export class OgcOpenApiFeatureStore extends Store {
57
58
  options.query = (options.query ? options.query : {});
58
59
  options.query.f = options.query.f ? options.query.f : this.dataFormat;
59
60
  options.query.crs = options.query.crs ? options.query.crs : this.customCrs;
60
- let request = this.featureUrl + id;
61
- const simpleQuery = [];
62
- if (options.query.f)
63
- simpleQuery.push("f");
64
- if (options.query.crs)
65
- simpleQuery.push("crs");
66
- if (simpleQuery.length > 0) {
67
- const queryString = simpleQuery.map(k => "" + k + "=" + options.query[k]).join("&");
68
- request += "?" + queryString;
69
- }
61
+ const request = this.withQuery(this.featureUrl + encodeURIComponent(String(id)), { f: options.query.f, crs: options.query.crs });
70
62
  return this.fetchFeatures(request, options.abortSignal).then(cursor => cursor && cursor.hasNext() ? cursor.next() : null);
71
63
  }
72
64
  query(receivedQuery, options) {
@@ -74,19 +66,20 @@ export class OgcOpenApiFeatureStore extends Store {
74
66
  query.f = query.f ? query.f : this.dataFormat;
75
67
  query.crs = query.crs ? query.crs : this.customCrs;
76
68
  query.limit = query.limit ? query.limit : undefined;
77
- let request = this.baseUrl;
78
- const allKeys = Object.keys(query);
79
- if (allKeys.length > 0) {
80
- const filteredKeys = allKeys.filter(e => (typeof query[e] !== "undefined" && query[e] !== null));
81
- const indexOfFormat = filteredKeys.indexOf("f");
82
- if (indexOfFormat > -1) {
83
- filteredKeys.splice(indexOfFormat, 1);
84
- filteredKeys.unshift("f");
85
- }
86
- const queryString = filteredKeys.map(k => "" + k + "=" + query[k]).join("&");
87
- request += "?" + queryString;
69
+ return this.fetchFeatures(this.withQuery(this.baseUrl, query), options?.abortSignal);
70
+ }
71
+ // The parameters of the items link, then those of the request, which replace a link parameter of the same name.
72
+ // f comes first, every value is encoded
73
+ withQuery(url, parameters) {
74
+ const merged = { ...this.linkParameters };
75
+ for (const key of Object.keys(parameters)) {
76
+ if (typeof parameters[key] !== "undefined" && parameters[key] !== null)
77
+ merged[key] = parameters[key];
88
78
  }
89
- return this.fetchFeatures(request, options?.abortSignal);
79
+ const keys = Object.keys(merged).sort((a, b) => (a === "f" ? -1 : b === "f" ? 1 : 0));
80
+ if (keys.length === 0)
81
+ return url;
82
+ return url + "?" + keys.map(k => encodeURIComponent(k) + "=" + OgcOpenApiFetchTools.encodeQueryValue(merged[k])).join("&");
90
83
  }
91
84
  // Fetches and decodes features. The promise always settles: it rejects with the reason when the request,
92
85
  // the response or the decoding fails, and when LuciadRIA aborts the request through abortSignal.
@@ -181,20 +174,12 @@ export class OgcOpenApiFeatureStore extends Store {
181
174
  const parts = dataUrl.split('?');
182
175
  return parts[0].endsWith('/') ? parts[0] : (addSlash ? parts[0] + '/' : parts[0]);
183
176
  }
184
- static dataFormatInQuery(dataUrl) {
185
- let format;
186
- const parts = dataUrl.split('?');
187
- if (parts.length > 1) {
188
- const query = parts[1];
189
- const qs = query.split('&');
190
- for (const q of qs) {
191
- if (q.startsWith('f=')) {
192
- format = q.slice(2);
193
- return format;
194
- }
195
- }
196
- }
197
- return format;
177
+ static getQueryParameters(url) {
178
+ const parameters = {};
179
+ const query = url.split("?")[1];
180
+ if (query)
181
+ new URLSearchParams(query).forEach((value, key) => parameters[key] = value);
182
+ return parameters;
198
183
  }
199
184
  }
200
185
  //# sourceMappingURL=OgcOpenApiFeatureStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiFeatureStore.js","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiFeatureStore.js","sourceRoot":"","sources":["../src/OgcOpenApiFeatureStore.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,15 @@ declare class OgcOpenApiFetchTools {
29
29
  */
30
30
  static resolveUrl(href: string, documentUrl: string, serverOptions: FetchServerOptions): string;
31
31
  static addHostURL(url: string, HostUrl?: string): string;
32
+ /**
33
+ * A value for a query parameter: encoded, except for , : and / which are allowed in a query (RFC 3986) and keep
34
+ * values such as bbox=1,2,3,4 and crs=http://www.opengis.net/def/crs/... readable. Spaces, &, #, + and = are encoded.
35
+ */
36
+ static encodeQueryValue(value: string | number | boolean | Array<string | number>): string;
37
+ /**
38
+ * url with path appended to its path, keeping its query: .../collections/c?f=json and styles give .../collections/c/styles?f=json
39
+ */
40
+ static appendPath(url: string, path: string): string;
32
41
  static cleanUrl(inputUrl: string): string;
33
42
  static cleanUrlToAsset(inputUrl: string): string;
34
43
  static getHostURL(fullUrl: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiFetchTools.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiFetchTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAEpE,UAAU,eAAe;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,KAAA,KAAK;QAAE,YAAY,EAAE,GAAG,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CACpC;AAMD,cAAM,oBAAoB;WAER,kBAAkB,CAAC,OAAO,EAAE,eAAe;;wBAfxC,MAAM,KAAK,MAAM;qBAsB6C,MAAM;;;;;WAOvE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB;IAM1F;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB;WAQ/E,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;WAYxC,QAAQ,CAAC,QAAQ,EAAC,MAAM;WAIxB,eAAe,CAAC,QAAQ,EAAC,MAAM;WAI/B,UAAU,CAAC,OAAO,EAAE,MAAM;CAO3C;AAED,OAAO,EACH,oBAAoB,EACvB,CAAA"}
1
+ {"version":3,"file":"OgcOpenApiFetchTools.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiFetchTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAEpE,UAAU,eAAe;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,KAAA,KAAK;QAAE,YAAY,EAAE,GAAG,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CACpC;AAMD,cAAM,oBAAoB;WAER,kBAAkB,CAAC,OAAO,EAAE,eAAe;;wBAfxC,MAAM,KAAK,MAAM;qBAsB6C,MAAM;;;;;WAOvE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB;IAM1F;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB;WAQ/E,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAYtD;;;OAGG;WACW,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAKxF;;OAEG;WACW,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;WAKpC,QAAQ,CAAC,QAAQ,EAAC,MAAM;WAIxB,eAAe,CAAC,QAAQ,EAAC,MAAM;WAI/B,UAAU,CAAC,OAAO,EAAE,MAAM;CAO3C;AAED,OAAO,EACH,oBAAoB,EACvB,CAAA"}
@@ -49,6 +49,21 @@ class OgcOpenApiFetchTools {
49
49
  }
50
50
  return hostUrl + "/" + url;
51
51
  }
52
+ /**
53
+ * A value for a query parameter: encoded, except for , : and / which are allowed in a query (RFC 3986) and keep
54
+ * values such as bbox=1,2,3,4 and crs=http://www.opengis.net/def/crs/... readable. Spaces, &, #, + and = are encoded.
55
+ */
56
+ static encodeQueryValue(value) {
57
+ return encodeURIComponent(Array.isArray(value) ? value.join(",") : String(value))
58
+ .replace(/%2C/gi, ",").replace(/%3A/gi, ":").replace(/%2F/gi, "/");
59
+ }
60
+ /**
61
+ * url with path appended to its path, keeping its query: .../collections/c?f=json and styles give .../collections/c/styles?f=json
62
+ */
63
+ static appendPath(url, path) {
64
+ const [base, query] = url.split(/\?(.*)/s);
65
+ return OgcOpenApiFetchTools.cleanUrl(base) + path + (query ? "?" + query : "");
66
+ }
52
67
  static cleanUrl(inputUrl) {
53
68
  return inputUrl.split("?")[0].replace(/\/?$/, '/');
54
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiFetchTools.js","sourceRoot":"","sources":["../src/OgcOpenApiFetchTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiFetchTools.js","sourceRoot":"","sources":["../src/OgcOpenApiFetchTools.ts"],"names":[],"mappings":"AAaA,wFAAwF;AACxF,MAAM,UAAU,GAAG,oBAAoB,CAAC;AACxC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,MAAM,oBAAoB;IAEf,MAAM,CAAC,kBAAkB,CAAC,OAAwB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO;YACH,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE;gBAClF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;YACD,KAAK,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAW,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC7F,GAAG,EAAE,GAAG;gBACR,YAAY,EAAE,YAAY;aAC7B,CAAC;SACL,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,OAAoB,EAAE,aAAiC;QACtF,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,WAAmB,EAAE,aAAiC;QACzF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,+FAA+F;QAC/F,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC;QACvG,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,OAAgB;QAClD,IAAI,OAAO,GAAG,KAAK,WAAW;YAAE,OAAO,GAAG,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAK,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,OAAO,GAAG,GAAG,CAAC;YAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,KAAyD;QACpF,OAAO,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC5E,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,IAAY;QAC9C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,QAAe;QAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,QAAe;QACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAe;QACpC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,CAAC;CACJ;AAED,OAAO,EACH,oBAAoB,EACvB,CAAA"}
@@ -7,7 +7,12 @@ export interface LinkType {
7
7
  type: string;
8
8
  title: string;
9
9
  href: string;
10
+ profile?: string | string[];
10
11
  }
12
+ export declare const JSON_FG_MEDIA_TYPE = "application/vnd.ogc.fg+json";
13
+ export declare const JSON_FG_PROFILE = "http://www.opengis.net/def/profile/OGC/0/jsonfg";
14
+ export declare const COLLECTIONS_SELECTION_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collections-selection";
15
+ export declare const COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS: string[];
11
16
  export interface TileMatrix {
12
17
  id: string;
13
18
  scaleDenominator: number;
@@ -86,6 +91,7 @@ export interface OgcOpenApiCapabilitiesObject {
86
91
  baseUrl: string;
87
92
  tileMatrixSetsUrl?: string;
88
93
  links?: LinkType[];
94
+ conformsTo?: string[];
89
95
  serverOptions: FetchServerOptions;
90
96
  }
91
97
  export interface OgcOpenApiCapabilitiesCollection {
@@ -106,6 +112,7 @@ export interface OgcOpenApiCapabilitiesCollectionServiceLinkType {
106
112
  type: string;
107
113
  title: string;
108
114
  href: string;
115
+ profile?: string | string[];
109
116
  }
110
117
  export declare enum CollectionLinkType {
111
118
  Items = "items",
@@ -131,6 +138,10 @@ export declare class OgcOpenApiGetCapabilities {
131
138
  private static fetchLinkContentAsJSON;
132
139
  static filterCollectionLinks(links: OgcOpenApiCapabilitiesCollectionServiceLinkType[], linkType: CollectionLinkType): OgcOpenApiCapabilitiesCollectionServiceLinkType[];
133
140
  static getDataLink(currentLayer: OgcOpenApiCapabilitiesCollection, preferedFormat: string): string;
141
+ /**
142
+ * Whether the link is to JSON-FG: by its media type, or by the JSON-FG profile of an application/geo+json link
143
+ */
144
+ static isJsonFgLink(link: LinkType): boolean;
134
145
  private static detectTypeFormat;
135
146
  /**
136
147
  * The tile matrix sets of the server, with their definitions. A definition that cannot be read is left out, so one
@@ -150,6 +161,11 @@ export declare class OgcOpenApiGetCapabilities {
150
161
  }, linkType?: CollectionLinkType): Promise<LinkType[]>;
151
162
  private static getTileSetsHref;
152
163
  private static getDatasetTileSetsHref;
164
+ /**
165
+ * Whether the server supports the collections parameter of dataset tiles (OGC API Tiles, collections selection),
166
+ * as its conformance classes declare: the class of the standard, or the variant of COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS
167
+ */
168
+ static supportsCollectionSelection(capabilities: OgcOpenApiCapabilitiesObject | null): boolean;
153
169
  /**
154
170
  * Whether the server tiles the dataset as a whole, all its collections in each tile, for linkType Tiles or VectorTiles
155
171
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OgcOpenApiGetCapabilities.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiGetCapabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgcOpenApiGetCapabilities.d.ts","sourceRoot":"","sources":["../src/OgcOpenApiGetCapabilities.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
1
  import { OgcOpenApiFetchTools } from "./OgcOpenApiFetchTools.js";
2
2
  const SCALE_DENOMINATOR_TOLERANCE = 1e-8;
3
+ // JSON-FG, OGC Features and Geometries JSON: a media type of its own, or application/geo+json with the JSON-FG profile.
4
+ // Reading it needs a JSON-FG codec, GeoJsonCodec reads GeoJSON
5
+ export const JSON_FG_MEDIA_TYPE = "application/vnd.ogc.fg+json";
6
+ export const JSON_FG_PROFILE = "http://www.opengis.net/def/profile/OGC/0/jsonfg";
7
+ // The conformance class of OGC API Tiles for the collections parameter of dataset tiles (OGC 20-057, Table 7)
8
+ export const COLLECTIONS_SELECTION_CONFORMANCE = "http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collections-selection";
9
+ // The same class under another name, also accepted. Not in the standard: ldproxy declares it so, and supports the
10
+ // collections parameter as the standard requires. To be removed once ldproxy declares the class of the standard
11
+ export const COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS = ["http://www.opengis.net/spec/ogcapi-tiles-1/1.0/conf/collection-selection"];
3
12
  export var CollectionLinkType;
4
13
  (function (CollectionLinkType) {
5
14
  CollectionLinkType["Items"] = "items";
@@ -27,8 +36,9 @@ export class OgcOpenApiGetCapabilities {
27
36
  static fromURL(inputRequest, fromUrlOptions) {
28
37
  const options = fromUrlOptions ? fromUrlOptions : {};
29
38
  return new Promise((resolve, reject) => {
39
+ // The landing page, with the query it was given, such as an api key. baseUrl is without it
30
40
  const baseUrl = OgcOpenApiFetchTools.cleanUrl(inputRequest);
31
- const requestUrl = OgcOpenApiFetchTools.cleanUrl(inputRequest);
41
+ const requestUrl = OgcOpenApiFetchTools.appendPath(inputRequest, "");
32
42
  const serverOptions = OgcOpenApiFetchTools.createFetchOptions({ originalUrl: requestUrl, proxify: options?.proxify });
33
43
  OgcOpenApiFetchTools.fetch(requestUrl, {
34
44
  method: 'GET',
@@ -53,6 +63,12 @@ export class OgcOpenApiGetCapabilities {
53
63
  const linkToTileMatrixSets = tilingSchemes.find((link) => link.type === 'application/json') || tilingSchemes.find((link) => !link.type);
54
64
  // The links of the landing page are relative to it, the links of the collections to /collections
55
65
  const resolveLink = (link, documentUrl) => ({ ...link, href: OgcOpenApiFetchTools.resolveUrl(link.href, documentUrl, serverOptions) });
66
+ // The conformance classes, read with the collections. A server without them declares no classes
67
+ const conformance = jsonObject.links.find((link) => isRel(link, 'conformance'));
68
+ const conformancePromise = conformance ?
69
+ OgcOpenApiGetCapabilities.fetchJson({ serverOptions }, resolveLink(conformance, requestUrl).href, options)
70
+ .then(data => Array.isArray(data.conformsTo) ? data.conformsTo : [], () => []) :
71
+ Promise.resolve([]);
56
72
  const promiseArray = [];
57
73
  if (linkToData) {
58
74
  const collectionsLink = resolveLink(linkToData, requestUrl);
@@ -109,7 +125,7 @@ export class OgcOpenApiGetCapabilities {
109
125
  baseUrl,
110
126
  tileMatrixSetsUrl: linkToTileMatrixSets ? resolveLink(linkToTileMatrixSets, requestUrl).href : undefined
111
127
  };
112
- resolve(o);
128
+ conformancePromise.then(conformsTo => resolve({ ...o, conformsTo }));
113
129
  });
114
130
  }
115
131
  else {
@@ -157,7 +173,18 @@ export class OgcOpenApiGetCapabilities {
157
173
  const dataLink = OgcOpenApiGetCapabilities.filterCollectionLinks(currentLayer.links, CollectionLinkType.Items).find((link) => link.type === preferedFormat);
158
174
  return dataLink ? dataLink.href : '';
159
175
  }
176
+ /**
177
+ * Whether the link is to JSON-FG: by its media type, or by the JSON-FG profile of an application/geo+json link
178
+ */
179
+ static isJsonFgLink(link) {
180
+ const type = link.type ? link.type.toLowerCase() : "";
181
+ const profiles = Array.isArray(link.profile) ? link.profile : link.profile ? [link.profile] : [];
182
+ return type.indexOf(JSON_FG_MEDIA_TYPE) === 0 || profiles.indexOf(JSON_FG_PROFILE) > -1;
183
+ }
184
+ // JSON-FG is reported as JSON-FG also when the server types it application/geo+json with the JSON-FG profile
160
185
  static detectTypeFormat(link) {
186
+ if (link.type && OgcOpenApiGetCapabilities.isJsonFgLink(link) && link.type.indexOf(JSON_FG_MEDIA_TYPE) !== 0)
187
+ return JSON_FG_MEDIA_TYPE;
161
188
  if (link.type)
162
189
  return link.type;
163
190
  for (const key in CollectionLinkTypeAlternatives) {
@@ -264,6 +291,15 @@ export class OgcOpenApiGetCapabilities {
264
291
  const link = dataLinks.find((link) => link.type === "application/json") || dataLinks.find((link) => !link.type) || dataLinks[0];
265
292
  return link ? link.href : '';
266
293
  }
294
+ /**
295
+ * Whether the server supports the collections parameter of dataset tiles (OGC API Tiles, collections selection),
296
+ * as its conformance classes declare: the class of the standard, or the variant of COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS
297
+ */
298
+ static supportsCollectionSelection(capabilities) {
299
+ const conformsTo = capabilities && capabilities.conformsTo ? capabilities.conformsTo : [];
300
+ return conformsTo.indexOf(COLLECTIONS_SELECTION_CONFORMANCE) > -1 ||
301
+ COLLECTIONS_SELECTION_CONFORMANCE_VARIANTS.some(variant => conformsTo.indexOf(variant) > -1);
302
+ }
267
303
  /**
268
304
  * Whether the server tiles the dataset as a whole, all its collections in each tile, for linkType Tiles or VectorTiles
269
305
  */
@@ -391,7 +427,7 @@ export class OgcOpenApiGetCapabilities {
391
427
  const tileSetsHref = currentCollection ?
392
428
  OgcOpenApiGetCapabilities.getTileSetsHref(currentCollection, linkType) :
393
429
  OgcOpenApiGetCapabilities.getDatasetTileSetsHref(capabilities, linkType);
394
- const tileInfoUrl = typeof tileMatrix === "string" ? OgcOpenApiFetchTools.cleanUrl(tileSetsHref) + tileMatrix : tileMatrix.href;
430
+ const tileInfoUrl = typeof tileMatrix === "string" ? OgcOpenApiFetchTools.appendPath(tileSetsHref, tileMatrix) : tileMatrix.href;
395
431
  // pygeoapi answers 500 without f=json or an Accept header
396
432
  const data = await OgcOpenApiGetCapabilities.fetchJson(capabilities, tileInfoUrl, options);
397
433
  const links = data.links ? data.links.filter(l => l.rel === "item" || l.rel === "items").map(a => ({ ...a, href: OgcOpenApiFetchTools.resolveUrl(a.href, tileInfoUrl, capabilities.serverOptions) })) : [];