Legend-Parameter funktioniert bei WMTS-Layern nicht

Issue #1126 resolved
Jan Bücher created an issue

Hallo,

wir haben einen Service bei dem die Generierung der Legende im Geoserver nicht richtig funktioniert, weshalb wir sie als statisches Image bereitstellen.
Bei der Einbindung als WMTS wird allerdings der Parameter legend ignoriert. Wenn wir es mit dem deprecated Parameter legendURL angeben funktioniert es.

Angehängt ein Beispiel Portal, bei dem der WMTS-Service zweimal eingebunden ist, einmal mit Parameter legend und einmal mit legendURL. Bei legendURL wird korrekt das statische png geladen, bei legend wird die fehlerhafte Legende über die URL aus den Capabilities geladen.

Comments (10)

  1. Carina Brühl

    @geowerkstatt

    Hallo zusammen, 

    beim Bearbeiten dieses Tickets ist mir aufgefallen, dass durch das Setzen des Parameters „optionsFromCapabilities = true“ der Wert für „legend“ überschrieben wird. Deswegen wird anstelle des Bildes in der Legende der GetLegendGraphic Request an den Dienst geschickt. Dieser ist fehlerhaft und zeigt daher kein Bild an. Das lässt sich umgehen, indem der Parameter auf false gesetzt wird, also „optionsFromCapabilities = false“. Allerdings verstehe ich die Dokumentation zu dem Wert (📚Masterportal Docs) so, dass das eigentlich so nicht gedacht ist.

    Die Alternative hierzu wäre, alle benötigten Werte selber anzugeben. Deswegen habe ich versucht, die Config in der services-internet.json entsprechend anzupassen, was bisher allerdings zu Fehlern geführt hat. Die Projektion wird nicht richtig erkannt wird, obwohl diese der angegebenen Projektion im Layer entspricht und auch in der Fehlermeldung richtig drin steht.

    Da „optionsFromCapabilities = false“ zu funktionieren scheint, wollte ich mich rückversichern, ob ich die Dokumentation richtig verstanden habe, bevor ich mehr Zeit in den Versuch stecke, herauszufinden wieso es zu der Fehlermeldung kommt. Oder sollte das eigentlich gar nicht funktionieren und ist nur ein Nebeneffekt?

    Viele Grüße,

    Carina

  2. Friedrich Müller

    @Carina Brühl generell sollte es auch gehen mit dem “legend“ Attribut.

    → masterportal\src\core\layers\wmts.js

    /**
     * If no legendURL is set an Error is written on the console.
     * For the OptionsFromCapabilities way:
     * If legend is empty, WMTS-Capabilities will be searched for a legendURL (OGC Standard)
     * If a legend is found, legend will be rebuild
     *
     * @returns {void}
     */
    

    Denke das es ein Bug ist?

    Müsste wohl da angepasst werden: dann gehen beide Varianten

    WMTSLayer.prototype.createLegend = function () {
        let legend = this.get("legend");
        this.setLegend([legend]);
    

    und in der config dann:

    "legend": "https://api.viz.berlin.de/geoserver/www/legende_los.png"

    VG,

  3. Jan-Hendrik Worch

    Hallo zusammen,

    ich bin gerade über den Bug mit dem WMTS, gesetzter Legende und optionsFromCapabilites gestoßen. Bei mir existiert der Fehler weiterhin und auch der Code wurde nicht wie hier vorgeschlagen angepasst - auch nicht im aktuellsten dev Branch. Habe ich etwas übersehen was die vorgeschlagene Änderung obsolet macht?

    VG

  4. Carina Brühl

    Hallo Jan-Hendrik,

    der Code wurde damals angepasst und der bug behoben - eigentlich sollten die Änderungen (es waren andere als die obige, aber in der gleichen Datei wenn ich mich richtig erinnere) im dev Branch zu sehen sein. Es ist allerdings tatsächlich seltsam, dass der Fehler jetzt wieder auftritt - eventuell hat es einen anderen Ursprung. Vielleicht macht es Sinn, hierzu nochmal ein Ticket zu erstellen (falls nicht bereits geschehen), auch mit Verweis auf dieses Issue, und den Fehler genauer zu beschreiben und den entsprechenden Dienst mit anzugeben, bei dem das Problem auftritt.

    VG, Carina

  5. Melanie Bannat

    Hallo Jan,

    bei mir tritt der Fehler auch weiterhin auf. Ich habe mich schon gewundert, ob ich die Einzige bin…

  6. Log in to comment