Vereinfachen Sie die Ausgabe von GeoServer WFS

12

Ich habe es mit einigen großen Datenmengen zu tun und möchte die über das Netzwerk gesendete Datenmenge minimieren. Ich verwende die BBox-Strategie von OpenLayers, um nur die Daten zu übertragen, die benötigt werden, aber ich frage mich, ob ich die Ausgabe vereinfachen kann, damit ich niedrigere Zoomstufen anzeigen kann, ohne Daten mit unnötiger Genauigkeit / Detailgenauigkeit übertragen zu müssen.

Ich verwende GeoServer als WFS-Server als Teil des OpenGeo-Bundles.

Mr_Chimp
quelle

Antworten:

8

WFS / GeoServer bietet keine Möglichkeit, eine Verallgemeinerung im laufenden Betrieb auf der Grundlage des Maßstabs durchzuführen. Es gibt jedoch eine spezielle Erweiterung, die genau das tut, wonach Sie suchen, indem Sie eine Vorab-Verallgemeinerung durchführen.

http://docs.geoserver.org/stable/en/user/data/featurepregen.html

jdeolive
quelle
1
+1 - sehr schöne Erweiterung. Wäre schön ein MapServer Äquivalent zu haben ..
geographika
3

Einige mögliche Lösungen:

  • Benötigen Sie die Daten wirklich im Vektorformat? Wenn die großen komplexen Polygone nur als Referenz dienen, sind sie als WMS / Bilder in Ordnung. Wenn Sie sie vereinfachen können, brauchen Sie die Geometrie wahrscheinlich sowieso nicht.
  • Sie können einen Generalisierungsparameter über einen benutzerdefinierten Parameter an eine Kartenebene übergeben und diese verwenden, um die Geometrie zu vereinfachen. In diesem Thread geht es um MapServer, aber ich gehe davon aus, dass mit GeoServer etwas Ähnliches möglich ist - http://osgeo-org.1803224.n2.nabble.com/WFS-Server-Control-output-by-scale-td2279383.html
  • Im obigen Thread wird auch darauf verwiesen, dass Sie die für verschiedene Maßstäbe vorvereinfachten Datensätze speichern und bei Bedarf in Ihrer Karte ausblenden / anzeigen können
  • Stellen Sie sicher, dass die gZip- Komprimierung auf Ihrem Webserver aktiviert ist, da dadurch GML / XML-Dateien auf mindestens die Hälfte der Größe verkleinert werden
geographika
quelle
Ich brauche sie definitiv im Vektorformat, da ich in der Lage sein möchte, auf sie zu klicken, um weitere Informationen zu erhalten und die Polygone zu bearbeiten (obwohl ich natürlich nur die wahren Formen bearbeiten möchte, nicht die vereinfachten Versionen, die möglicherweise vorliegen ein bisschen tricky).
Mr_Chimp
1
@mr_chimp - Mit der WMS GetFeatureInfo-Anforderung können Sie nur die Geometrie und Attribute für das Feature per Mausklick zurückgeben.
geographika
3

Mit der OL- Clusterstrategie können Sie die Darstellung (für Benutzer) vereinfachen, die übertragene Datenmenge wird jedoch nicht geringer, da die Clusterisierung auf Client-Seite erfolgt.

Siehe auch die Dokumentationsseite .

(Ich weiß nicht, welche Optionen auf der Serverseite verfügbar sind.)

simo
quelle
Vielleicht irre ich mich, aber die Cluster-Strategie scheint für Punktdaten zu gelten. Ich habe komplexe Polygondaten, die ich vereinfachen möchte.
Mr_Chimp
Dies würde den Netzwerkverkehr nicht reduzieren, da alle Punkte für die Clusterbildung auf der Clientseite benötigt würden.
geographika
@geographika> das wollte ich sagen, aber wie du ahnen kannst, habe ich die Negation in meinem Satz vergessen (jetzt repariert)! Es ist immer noch eine gute Möglichkeit, die Lesbarkeit für Endbenutzer zu verbessern
simo
@Mr_Chimp> keine Entsprechung für Polygone, in der Tat
simo
0

Wenn Sie befürchten, dass das WFS "schwer" ist (die GML-Ausgabe ist von Natur aus ausführlich), raten wir Ihnen, stattdessen nach Möglichkeit Well-Known Text (WKT) zu verwenden. Ich denke, dass die BBox-Strategie von OpenLayers mit WKT "kompatibel" ist.

Dariapra
quelle