Simplifier la sortie WFS de GeoServer

12

Je traite de grands ensembles de données et je souhaite minimiser la quantité de données envoyées sur le réseau. J'utilise la stratégie BBox d'OpenLayers pour transférer uniquement les données nécessaires, mais je me demande si je peux simplifier la sortie afin de pouvoir afficher des niveaux de zoom inférieurs sans avoir à transférer des données avec une précision / détails inutiles.

J'utilise GeoServer comme serveur WFS dans le cadre du bundle OpenGeo.

Mr_Chimp
la source

Réponses:

8

WFS / GeoServer ne fournit pas vraiment de moyen de faire de la généralisation à la volée en fonction de l'échelle, mais il existe une extension spéciale qui fait ce que vous recherchez en faisant de la prégénéralisation.

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

jdeolive
la source
1
+1 - très belle extension. Ce serait bien d'avoir un équivalent MapServer ..
geographika
3

Quelques solutions possibles:

  • Avez-vous vraiment besoin des données au format vectoriel? Si les grands polygones complexes sont juste à titre de référence, ils seront parfaits en tant que WMS / images. Si vous pouvez les simplifier, vous n'avez probablement pas besoin de la géométrie de toute façon.
  • Vous pouvez passer un paramètre de généralisation à une couche de carte via un paramètre personnalisé et l'utiliser pour simplifier la géométrie. Ce fil porte sur MapServer, mais je suppose que quelque chose de similaire peut être fait avec GeoServer - http://osgeo-org.1803224.n2.nabble.com/WFS-Server-Control-output-by-scale-td2279383.html
  • Également référencé dans le fil ci-dessus, vous pouvez stocker les jeux de données pré-simplifiés pour différentes échelles et les masquer / afficher dans votre carte selon vos besoins
  • Assurez-vous que la compression gZip est activée sur votre serveur Web car cela réduira les fichiers GML / XML à au moins la moitié de la taille
geographika
la source
J'ai vraiment besoin d'eux au format vectoriel car je veux pouvoir cliquer dessus pour obtenir plus d'informations ainsi que modifier les polygones (bien que je ne souhaite évidemment pouvoir modifier que les vraies formes, pas les versions simplifiées, qui pourraient être un peu délicat).
Mr_Chimp
1
@mr_chimp - vous pouvez utiliser la demande WMS GetFeatureInfo pour renvoyer uniquement la géométrie et les attributs de l'entité sous un clic de souris.
geographika
3

En utilisant la stratégie de cluster OL , vous pouvez simplifier la représentation (pour les utilisateurs) mais la quantité de données transférées ne sera pas inférieure, car la clusterisation se fait côté client.

Voir aussi la page de documentation .

(Je ne connais pas les options disponibles côté serveur)

simo
la source
Peut-être que je me trompe, mais la stratégie de cluster semble être pour les données ponctuelles. J'ai des données polygonales complexes que je voudrais simplifier.
Mr_Chimp
Cela ne réduirait pas le trafic réseau car tous les points seraient nécessaires pour regrouper le côté client.
geographika
@geographika> c'est ce que je voulais dire, mais comme vous pouvez le deviner, j'ai oublié la négation dans ma phrase (réparée maintenant)! C'est toujours un bon moyen d'améliorer la lisibilité pour les utilisateurs finaux
simo
@Mr_Chimp> pas d'équivalent pour les polygones, en effet
simo
0

Si vous craignez que le WFS soit «lourd» (sa sortie GML est verbeuse par nature), je vous conseille d'utiliser plutôt du texte bien connu (WKT), si possible. Je suppose que la stratégie BBox d'OpenLayers est "compatible" avec WKT.

dariapra
la source