Legende für WFS-Layer funktioniert nicht richtig

Issue #1091 resolved
Jan Bücher created an issue

Für WFS-Layer funktioniert die Generierung der Legende nicht mehr richtig.

Teilweise werden falsche Geometry-Types ermittelt. Das lässt sich noch umgehen, indem im Service der GeometryType definiert wird.
Wenn aus der DescripeFeatureType-Anfrage gar kein GeometryType ermittelt werden kann greift aber auch diese Angabe nicht.
Bei der Auswertung der DescripeFeatureType-Anfrage wird erwartet, dass der Typ unterhalb des elemet ist oder im nächsten Nachbar, bei uns (per geoserver) ist es allerdings im vorhergehenden Nachbar.

Bei Styles mit Conditions führt eine Fallback-Rule ohne Condition zu einem Fehler.

Comments (13)

  1. Sven Junker-Beyel

    Moin, wäre es möglich ein Beispielportal (Als Anhang oder URL) bereistzustellen, aus dem der Fehler hervorgeht?

  2. Jan Bücher reporter

    Ich habe ein Beispiel-Portal angehängt, in dem hoffentlich alle Probleme die bei uns aufgetreten sind abgedeckt sind. (Getestet mit Version 2.38.0)

    Bei den Layern “Lichtsignalanlagen” und “Parkraumbewirtschaftung” werden in der Legende Einträge erstellt für Geometrie-Typen die garnicht vorkommen (Siehe Screenshot). Das ist der Effekt, den ich auch auf dem Verkehrsportal Hamburg gesehen habe. Dann ist das evtl. in der 2.39 schon behoben.

    Für die Layer “Share Now Fahrzeuge”, “Nextbike Stationen” und “Behindertenparkplätze” wird keine überhaupt keine Legende erstellt (teilweise gibt es auch Fehler in der Konsole).

    Beim Layer “Standorte Abstellflächen Mikromobilitätsangebote“ gibt es beim erzeugen der Legende einen Fehler weil die erste Rule eine Condition hat und die zweite nicht.

  3. Inka Dudek

    Zwischenstand:

    Ich habe mir den Layer “Lichtsignalanlagen” im Beispielportal angeguckt.

    Der DescribeFeatureType Request liefert eine sequence unter gml:AbstractFeatureType, die

    folgendes liefert:

    ...
    <xsd:element minOccurs=”0” name=”geom” nillable=”true” type=”gml:GeometryPropertyType”> </xsd:element>
    ...
    

    Für die Bestimmung des Geometry-Types für die Legende wird der das type-Attribut dieser Zeile ausgewertet und dort wird gml: und PropertyTypeabgeschnitten, es bleibt Geometry. Da Geometry nichts konkretes aussagt, wird Point, Polygon und LineString zurückgegeben und diese 3 Typen werden in der Legende dargestellt.

    Ich habe kein Element gefunden, dass den Geometry-type Pointenthält.

    Der type müsste ”gml:PointPropertyType” sein!

    Der Geometry-type kann am Layer überschrieben werden mit dem Attribut styleGeometryType, der dann genutzt wird, siehe https://bitbucket.org/geowerkstatt-hamburg/masterportal/src/dev/doc/config.json.de.md.

    Ich habe den Eindruck, dass der DescribeFeatureType Request die falsche Antwort liefert.

    Beim Layer “Parkraumbewirtschaftung” verhält es sich genauso.

  4. Inka Dudek

    Layer "sharenow", "nextbike","Behindertenparkplätze" : Auslesen des DescribeFeatureType Request wurde angepasst.
    Layer mit condition an nur einer rule “Standorte Abstellflächen Mikromobilitätsangebote“: bugfix

    Damit die Legende dann so aussieht:

    habe ich in der config.json folgendes ergänzt:

    {
            "id": "lichtsignalanlagen",
           ...
            "styleGeometryType": "Point"
          },
          {
            "id": "Parkraumbewirtschaftung",
          ...
            "styleGeometryType": "Polygon"
          },
    

  5. Log in to comment