Drucken von Thema mit bestimmten Styling schlägt fehl

Issue #1172 resolved
Manuel Lindemann created an issue

Wir haben im Geoportal Frankfurt eine Themenkarte „Kühle Orte“. Das Drucken schlägt fehl und es gibt diese Fehlermeldung in der Konsole:

Error: org.geotools.filter.text.cql2.CQLException: Encountered "," at line 1, column 31.

Was expecting one of:

<AND> ...

"or" ...

"]" ...

"/" ...

"*" ...

"+" ...

"-" ...

Parsing : [klassifizierung='undefined_0',kostenfrei='undefined_0'].

Der Fehler hängt vermutlich damit zusammen, dass das Styling des WFS-Dienstes von zwei Attributen („klassifizierung“ und „kostenfrei“) gesteuert wird.

Ausschnitt aus der stlye_v3.json:

 {
                "conditions":
                {
                    "properties":
                    {
                        "klassifizierung": "Park",
                        "kostenfrei": "Ja"
                    }
                },
                "style":
                {
                    "type": "icon",
                    "imageOffsetX": 0.45,
                    "imageOffsetY": 0.80,
                    "imageName" : "Kuehle_Orte/31501100_XE_Erholung_Parkanlage_gruen.png",
                    "imageScale" : "0.9",
                    "legendValue": "Park - kostenfrei"
                }
            },
            {
                "conditions":
                {
                    "properties":
                    {
                        "klassifizierung": "Park",
                        "kostenfrei": "Nein"
                    }
                },
                "style":
                {
                    "type": "icon",
                    "imageOffsetX": 0.45,
                    "imageOffsetY": 0.80,
                    "imageName" : "Kuehle_Orte/31501100_XE_Erholung_Parkanlage_rot.png",
                    "imageScale" : "0.9",
                    "legendValue": "Park - kostenpflichtig"
                }
            },
            {
                "conditions":
                {
                    "properties":
                    {
                        "klassifizierung": "Park",
                        "kostenfrei": "Teilweise"
                    }
                },
                "style":
                {
                    "type": "icon",
                    "imageOffsetX": 0.45,
                    "imageOffsetY": 0.80,
                    "imageName" : "Kuehle_Orte/31501100_XE_Erholung_Parkanlage_gelb.png",
                    "imageScale" : "0.9",
                    "legendValue": "Park - teilweise kostenpflichtig"
                }
            },

Zum Nachvollziehen: https://geoportal.frankfurt.de/kuehleorte

Comments (11)

  1. Konstantin Holm

    Hallo Manuel,

    ich kann den Fehler schon mal nachstellen und identifizieren -

    Es liegt an dem CQL-Parser, wie in der Konsole beschrieben bei [klassifizierung='undefined_0',kostenfrei='undefined_0']

    CQL Ausdrücke funktionieren an dieser Stelle nicht mit Komma, sondern brauchen wahlweise einen Ausdruck mit ANDoder OR.
    Ich weiß nur noch nicht, wo dieser CQL-Ausdruck aufgerufen wird.

    Kannst du bei euch überprüfen, ob eurerseits vielleicht ein Backend-Aufruf in dieser Sache kommt?
    Ich prüfe auf unserer Seite, ob die PrintMap-Komponente oder damit verbundene Dienste etwas inkorrekt verbinden.

    Viele Grüße

    Konstantin

  2. Jan Bücher

    Bin auch schonmal über das Problem gestolpert. Das Problem steckt hier: https://bitbucket.org/geowerkstatt-hamburg/masterportal/src/596c50bc6f72829474405909b16ea3ba486bc6ed/src/modules/tools/print/utils/buildSpec.js#lines-1216

    Habe das bei mir lokal folgendermaßen geändert:

            if (styleAttr instanceof Array) {
                return styleAttr.reduce((acc, curr) => acc + `${curr}='${feature.get(curr)}' AND `, "[").slice(0, -5)
                + "]";
            }
    

    Das hat zumindest verhindert, dass es Fehler gibt. Allerdings gibt es bei komplexeren Styles trotzdem Probleme mit der Zuordnung.

  3. Konstantin Holm

    Hallo Jan,

    welche Probleme bei komplexeren Styles meinst du? Kannst du da ein Beispiel nennen?

    Ich erhalte jetzt den Fehler Parsing : [default='style' AN].

    Viele Grüße

    Konstantin

  4. Manuel Lindemann reporter

    Hallo zusammen,

    ich habe die Anpassungen von Jan Bücher getestet. Es kommt nun keine Fehlermeldung mehr und es wird eine PDF-Datei erzeugt.

    In der PDF-Datei werden die Icon allerdings nicht auf der Karte angezeigt, in der Legende dagegen schon.

    Viele Grüße

    Manuel

  5. Jan Bücher

    In der PDF-Datei werden die Icon allerdings nicht auf der Karte angezeigt, in der Legende dagegen schon.

    Nutzen Sie relative Pfade für die Icons? Das ist ein Problem, dass ich vor zwei Monaten gefixed habe: https://bitbucket.org/geowerkstatt-hamburg/masterportal/commits/d5a47d220149a44380c06a3120f82596fbf19447
    Wenn die Versions-Angabe hier im Ticket (2.20.0) aktuell ist oder Sie eine andere Version nutzen bevor mein Fix gemerged wurde, müssten Sie die Änderungen bei sich übernehmen.

    Viele Grüße
    Jan

  6. Jan Bücher

    welche Probleme bei komplexeren Styles meinst du? Kannst du da ein Beispiel nennen?

    Ist etwas her, dass ich mich damit beschäftigt habe, aber aus der Erinnerung waren es vorallem Styles bei denen die Auswertung der Conditions eine Rolle spielt.

    Zum Beispiel erste Condition ist attr > 100 und zweite Condition ist attr < 200.

    Auch Problematisch war eine Catch-All Regel ohne Condition wenn keine der anderen Regeln greift (die muss natürlich als letztes ausgewertet werden)

    Ich glaube aber auch wenn die Conditions auf unterschiedliche Properties prüft gab es Probleme.

    Ich erhalte jetzt den Fehler Parsing : [default='style' AN].

    Hast du auch die Änderung an den Slice-Grenzen übernommen?

    Viele Grüße
    Jan

  7. Konstantin Holm

    Hallo Jan,

    danke für den Hinweis - ich hatte in der Tat vergessen die Slice-Grenzen anzupassen. Jetzt funktioniert es.
    Zu den komplexen Styles - kommt das hier hin? https://bitbucket.org/geowerkstatt-hamburg/masterportal/issues/1170/konditionale-formatierung-mit-ranges

    Da gibt es ein anderes Issue mit den Ranges. Aber deine Beschreibung klingt ja ähnlich. Ich will versuchen das nachzustellen, denn das wäre ja eine größere Änderung als nur die Anpassung der von dir genannten Zeile. Nur muss ich dann das konkrete Fehlerbild nachstellen können.

    Viele Grüße
    Konstantin

  8. Manuel Lindemann reporter

    Nutzen Sie relative Pfade für die Icons? Das ist ein Problem, dass ich vor zwei Monaten gefixed habe: https://bitbucket.org/geowerkstatt-hamburg/masterportal/commits/d5a47d220149a44380c06a3120f82596fbf19447
    Wenn die Versions-Angabe hier im Ticket (2.20.0) aktuell ist oder Sie eine andere Version nutzen bevor mein Fix gemerged wurde, müssten Sie die Änderungen bei sich übernehmen.

    Wir nutzen absolute Pfade für die Icons. Bei anderen Themen funktionieren die Icons auch beim Drucken.
    Ich habe die Änderungen trotzdem mal ausprobiert und die Icons werden weiterhin beim Ausdruck auf der Karte nicht angezeigt.
    Ich denke, das Problem liegt woanders, evtl. daran, dass das Stylen von zwei Attributen abhängt.

  9. Konstantin Holm

    Scheint mit der Version 2.46.0 vom Masterportal behoben worden zu sein, ohne die eigentliche Änderung im Code, die durch Jan Bücher vorgeschlagen wurde.

    Sollte der Fehler doch noch auftreten, können wir das Issue wieder öffnen.

  10. Log in to comment