- changed status to open
Drucken von Thema mit bestimmten Styling schlägt fehl
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)
-
-
-
assigned issue to
-
assigned issue to
-
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
AND
oderOR
.
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
-
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.
-
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
-
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
-
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
-
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 -
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-rangesDa 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 -
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. -
- changed status to resolved
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.
- Log in to comment