Nach Hin- und Herzoomen plötzliche mehrfache Anzeige der Features in der GFI-Anzeige bei Verwendung von WFS

Issue #857 resolved
Matthias Pramme created an issue

Moin,

ich habe in der Version 2.27.1 und 2.20 folgendes festgestellt:

Bei Verwendung eines WFS tauchen nach Benutzung von verschiedenen Zoom-Stufen plötzlich mehrfache Features in der GetFeatureInfo auf. Ein zusätzlicher WMS wird nicht verwendet.

Ich verwende mouseHover und gfi-Click, über beide Methoden werden dann die mehrfachen Features angezeigt, obwohl nur ein Feature angezeigt werden müsste.

services-internet.json:

  {
  "name": "windparks",
  "url": "https://...",
  "typ": "WFS",
  "featureType" : "windparks",
  "outputFormat" : "XML",
  "version" : "1.1.0",
  "gfiComplex" : "false",
  "gfiTheme" : "default",
  "featureNS" : "http://windparks",
  "gfiAttributes": {
        "title": "Name",
        "betreiber": "Betreiber",
        "genehmigungsdatum": "Genehmigungsdatum",
        "contis_featureid": "CONTIS_Feature_ID",
        "bescheide": "Bescheide"
      },
  "layerAttribution" : "nicht vorhanden",
  ...
  }

config.json

"Fachdaten": {
     "name": "Vorhaben",
     "Layer": [
           {"id": "4001",
             "name": "Windparks",
             "mouseHoverField": ["title","betreiber","genehmigungsdatum","contis_featureid","bescheide"],
             "visibility": true,
             "styleId": "10000",
             "searchField": ["title", "betreiber", "schlagwoerter", "contis_featureid", "bescheide"]
}

Vorher (in Ordnung):

Nachher (falsch):

noch eine Anmerkung, der oben genannte Dienst mit dem Layer Windparks ist nicht öffentlich. Ich konnte das Verhalten aber auch über den öffentlichen Dienst Fahrtgebiete beobachten (s. unten).

resources/services-internet.json :

{
  "id": "4010",
  "name": "Fahrtgebiete",
  "url": "https://www.geoseaportal.de/geoserver/Fahrtgebiete/wfs",
  "typ": "WFS",
  "featureType" : "Fahrtgebiete",
  "outputFormat" : "XML",
  "version" : "1.1.0",
  "featureNS" : "http://Fahrtgebiete",
  "layerAttribution" : "nicht vorhanden",
  "legend" : false,
  "isSecured": false
 }

config.json :

{
"id": "4010",
"name": "Fahrtgebiete",
"mouseHoverField": ["regel_artikel_4"],
"visibility": true,
"styleId": "10002",
"searchField": ["regel_artikel_4"]
}

Viele Grüße

Matthias Pramme

Bundesamt für Seeschifffahrt und Hydrographie

Comments (9)

  1. Markus Rullkoetter

    Hallo Herr Pramme,

    ich habe mir das von Ihnen beschriebene Problem anhand des Diensts “Fahrtgebiete” angeschaut.
    Es sieht stark danach aus, dass der Dienst selber für dieses Verhalten verantwortlich ist, da dieser in den Abfragen die gleichen Features mit unterschiedlichen IDs zurückliefert.

    Gut zu sehen ist dies, wenn Sie sich die folgenden beiden Links im Browser parallel in zwei Tabs öffnen und per Tab-Wechsel vergleichen:

    https://www.geoseaportal.de/geoserver/Fahrtgebiete/wfs?service=WFS&version=1.1.0&request=GetFeature&srsName=EPSG:3857&bbox=834004.415620399,7018065.752003214,1299047.2957069476,7347356.469855425,EPSG:3857&typeName=Fahrtgebiete

    https://www.geoseaportal.de/geoserver/Fahrtgebiete/wfs?service=WFS&version=1.1.0&request=GetFeature&srsName=EPSG:3857&bbox=778893.3182269217,7004783.813475084,1243936.1983134702,7334074.531327294,EPSG:3857&typeName=Fahrtgebiete

    Es ist zu erkennen, dass sich nur timeStamp und gml:id ändern und der Rest gleich bleibt.
    Da OpenLayers anhand der ID (gml:id) entscheidet, ob ein Feature bereits geladen wurde oder nicht, werden die Features übereinander gelegt und somit doppelt angezeigt.
    mouseHover und gfi-Click liefern daraufhin auch Informationen für beide (grundsätzlich für alle) Features an der Position des Mauszeigers oder des Mausklicks.
    Ob dies auch für den Dienst “windparks” zutrifft, kann ich jetzt natürlich leider nicht beurteilen.

    Folglich muss ich Sie daher bitten, den die Dienste so zu konfigurieren, dass jedes Feature immer mit der gleichen ID zurückgeliefert wird oder sich mit entsprechender Anfrage an den Anbieter der Dienste zu wenden. Wenn das erfolgt ist und Ihr Problem trotzdem weiterhin besteht, melden Sie sich bitte erneut.

    Viele Grüße
    Markus Rullkötter

  2. Matthias Pramme reporter

    Hallo Herr Rullkoetter,

    vielen Dank, ich habe den Dienst angepasst sodass die IDs nun statisch sind und keine mehrfachen Features mehr erscheinen.

    Viele Grüße

    Matthias Pramme

  3. Matthias Pramme reporter

    Problem lag an dem WFS-Dienst die gml:id muss notwendiger Weise statisch sein, darf also nicht bei Abfrage des Dienstes generiert werden (z. B: Benutzung von Primary-Key-Attribut im GeoServer), ansonsten kommt es zu dem beschriebenen Verhalten.

  4. Log in to comment