[Beta] Baselayer-Preview für WMTS

Issue #1146 resolved
Jan Bücher created an issue

Bei den Previews für Hintergrundkarten wird für WMTS davon ausgegangen, dass bei der getCapabilities-Url vor einem “?” eine Basis-URL steht, die mit einem getTile-Service-Aufruf ergänzt werden kann. Bei vielen WMTS besteht die getCapabilities-URL aber aus einer separaten XML.

Das Problem lässt sich schon an dem Basic-Portal aus den Examples sehen, wenn man den Baselayer-Switcher aktiviert. Für den dort eingebundenen Layer “TopPlusOpen (WMTS)” funktioniert das Verfahren nicht.

Ich habe eine Variante, die sich aus den Capabilities die benötigten URLs bezieht und den benötigten Tile lädt:

        createWMTSPreviewUrlFromCapabilities (layerConfig, capabilities) {
            const capabilitiesOptions = {
                    layer: layerConfig.layers
                },
                mapView = mapCollection.getMapView("2D");
            let previewUrl,
                options = null,
                tileZ = null,
                tileCoord = null;

            if (layerConfig.tileMatrixSet) {
                capabilitiesOptions.matrixSet = layerConfig.tileMatrixSet;
            }
            else {
                capabilitiesOptions.projection = "EPSG:3857";
            }
            options = optionsFromCapabilities(capabilities, capabilitiesOptions);
            tileZ = options?.tileGrid.getZForResolution(mapView.getResolutions()[this.previewZoomLevel(this.layerId)]);
            tileCoord = options?.tileGrid.getTileCoordForCoordAndZ(this.previewCenter(this.layerId), tileZ);

            let x = new WMTS(options),
                tile = x.getTile(tileCoord[0], tileCoord[1], tileCoord[2]);
            tile.load();
            previewUrl = tile.getImage().src;

            this.load(previewUrl);
        },

Da ich mir nicht sicher bin, ob ews Anwendungsfälle gibt, in denen diese Variante nicht passt, erstmal nicht als Pull-Request. Gegebenenfalls müsste hier ein Merge aus beiden Varianten erfolgen.

Comments (3)

  1. Log in to comment