@dlr-eoc/services-ogc
Version:
This module bundles our clients for OGC standards. E.g. parse OWS Context JSON, WMS, WMTS or WPS.
46 lines • 7.65 kB
JavaScript
import { Injectable } from '@angular/core';
import { HttpHeaders } from '@angular/common/http';
import { Jsonix } from '@michaellangbein/jsonix';
import { map } from 'rxjs/operators';
import * as XLink_1_0_Factory from 'w3c-schemas/lib/XLink_1_0';
import * as OWS_1_1_0_Factory from 'ogc-schemas/lib/OWS_1_1_0';
import * as SMIL_2_0_Factory from 'ogc-schemas/lib/SMIL_2_0';
import * as SMIL_2_0_Language_Factory from 'ogc-schemas/lib/SMIL_2_0_Language';
import * as GML_3_1_1_Factory from 'ogc-schemas/lib/GML_3_1_1';
import * as WMTS_1_0_Factory from 'ogc-schemas/lib/WMTS_1_0';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
const XLink_1_0 = XLink_1_0_Factory.XLink_1_0;
const OWS_1_1_0 = OWS_1_1_0_Factory.OWS_1_1_0;
const SMIL_2_0 = SMIL_2_0_Factory.SMIL_2_0;
const SMIL_2_0_Language = SMIL_2_0_Language_Factory.SMIL_2_0_Language;
const GML_3_1_1 = GML_3_1_1_Factory.GML_3_1_1;
const WMTS_1_0 = WMTS_1_0_Factory.WMTS_1_0;
export class WmtsClientService {
constructor(http) {
this.http = http;
const context = new Jsonix.Context([SMIL_2_0, SMIL_2_0_Language, GML_3_1_1, XLink_1_0, OWS_1_1_0, WMTS_1_0]);
this.xmlunmarshaller = context.createUnmarshaller();
this.xmlmarshaller = context.createMarshaller();
}
getCapabilities(url, version = '1.1.0') {
// example: https://tiles.geoservice.dlr.de/service/wmts?SERVICE=WMTS&REQUEST=GetCapabilities&VERSION=1.1.0
const getCapabilitiesUrl = `${url}?SERVICE=WMTS&REQUEST=GetCapabilities&VERSION=${version}`;
const headers = new HttpHeaders({
'Content-Type': 'text/xml',
Accept: 'text/xml, application/xml'
});
return this.http.get(getCapabilitiesUrl, { headers, responseType: 'text' }).pipe(map(response => {
return this.xmlunmarshaller.unmarshalString(response);
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WmtsClientService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WmtsClientService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WmtsClientService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.HttpClient }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210c2NsaWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2VydmljZXMtb2djL3NyYy9saWIvd210cy93bXRzY2xpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFFL0QsT0FBTyxLQUFLLGlCQUFpQixNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxPQUFPLEtBQUsseUJBQXlCLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLGlCQUFpQixNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBVDdELE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztBQUU5QyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7QUFFOUMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0FBRTNDLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQUMsaUJBQWlCLENBQUM7QUFFdEUsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDO0FBRTlDLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztBQU8zQyxNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlLENBQUMsR0FBVyxFQUFFLE9BQU8sR0FBRyxPQUFPO1FBQ25ELDJHQUEyRztRQUMzRyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsR0FBRyxpREFBaUQsT0FBTyxFQUFFLENBQUM7UUFDNUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDOUIsY0FBYyxFQUFFLFVBQVU7WUFDMUIsTUFBTSxFQUFFLDJCQUEyQjtTQUNwQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDOUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0F2QlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSnNvbml4IH0gZnJvbSAnQG1pY2hhZWxsYW5nYmVpbi9qc29uaXgnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIFhMaW5rXzFfMF9GYWN0b3J5IGZyb20gJ3czYy1zY2hlbWFzL2xpYi9YTGlua18xXzAnO1xyXG5jb25zdCBYTGlua18xXzAgPSBYTGlua18xXzBfRmFjdG9yeS5YTGlua18xXzA7XHJcbmltcG9ydCAqIGFzIE9XU18xXzFfMF9GYWN0b3J5IGZyb20gJ29nYy1zY2hlbWFzL2xpYi9PV1NfMV8xXzAnO1xyXG5jb25zdCBPV1NfMV8xXzAgPSBPV1NfMV8xXzBfRmFjdG9yeS5PV1NfMV8xXzA7XHJcbmltcG9ydCAqIGFzIFNNSUxfMl8wX0ZhY3RvcnkgZnJvbSAnb2djLXNjaGVtYXMvbGliL1NNSUxfMl8wJztcclxuY29uc3QgU01JTF8yXzAgPSBTTUlMXzJfMF9GYWN0b3J5LlNNSUxfMl8wO1xyXG5pbXBvcnQgKiBhcyBTTUlMXzJfMF9MYW5ndWFnZV9GYWN0b3J5IGZyb20gJ29nYy1zY2hlbWFzL2xpYi9TTUlMXzJfMF9MYW5ndWFnZSc7XHJcbmNvbnN0IFNNSUxfMl8wX0xhbmd1YWdlID0gU01JTF8yXzBfTGFuZ3VhZ2VfRmFjdG9yeS5TTUlMXzJfMF9MYW5ndWFnZTtcclxuaW1wb3J0ICogYXMgR01MXzNfMV8xX0ZhY3RvcnkgZnJvbSAnb2djLXNjaGVtYXMvbGliL0dNTF8zXzFfMSc7XHJcbmNvbnN0IEdNTF8zXzFfMSA9IEdNTF8zXzFfMV9GYWN0b3J5LkdNTF8zXzFfMTtcclxuaW1wb3J0ICogYXMgV01UU18xXzBfRmFjdG9yeSBmcm9tICdvZ2Mtc2NoZW1hcy9saWIvV01UU18xXzAnO1xyXG5jb25zdCBXTVRTXzFfMCA9IFdNVFNfMV8wX0ZhY3RvcnkuV01UU18xXzA7XHJcblxyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdtdHNDbGllbnRTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSB4bWxtYXJzaGFsbGVyO1xyXG4gIHByaXZhdGUgeG1sdW5tYXJzaGFsbGVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgSnNvbml4LkNvbnRleHQoW1NNSUxfMl8wLCBTTUlMXzJfMF9MYW5ndWFnZSwgR01MXzNfMV8xLCBYTGlua18xXzAsIE9XU18xXzFfMCwgV01UU18xXzBdKTtcclxuICAgIHRoaXMueG1sdW5tYXJzaGFsbGVyID0gY29udGV4dC5jcmVhdGVVbm1hcnNoYWxsZXIoKTtcclxuICAgIHRoaXMueG1sbWFyc2hhbGxlciA9IGNvbnRleHQuY3JlYXRlTWFyc2hhbGxlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENhcGFiaWxpdGllcyh1cmw6IHN0cmluZywgdmVyc2lvbiA9ICcxLjEuMCcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgLy8gZXhhbXBsZTogaHR0cHM6Ly90aWxlcy5nZW9zZXJ2aWNlLmRsci5kZS9zZXJ2aWNlL3dtdHM/U0VSVklDRT1XTVRTJlJFUVVFU1Q9R2V0Q2FwYWJpbGl0aWVzJlZFUlNJT049MS4xLjBcclxuICAgIGNvbnN0IGdldENhcGFiaWxpdGllc1VybCA9IGAke3VybH0/U0VSVklDRT1XTVRTJlJFUVVFU1Q9R2V0Q2FwYWJpbGl0aWVzJlZFUlNJT049JHt2ZXJzaW9ufWA7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3htbCcsXHJcbiAgICAgIEFjY2VwdDogJ3RleHQveG1sLCBhcHBsaWNhdGlvbi94bWwnXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGdldENhcGFiaWxpdGllc1VybCwgeyBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnhtbHVubWFyc2hhbGxlci51bm1hcnNoYWxTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==