Simplifique la salida de GeoServer WFS

12

Estoy tratando con algunos conjuntos de datos grandes y me gustaría minimizar la cantidad de datos enviados a través de la red. Estoy usando la estrategia BBox de OpenLayers para transferir solo los datos que se necesitan, pero me pregunto si puedo simplificar la salida para poder mostrar niveles de zoom más bajos sin tener que transferir datos con precisión / detalle innecesarios.

Estoy usando GeoServer como servidor WFS como parte del paquete OpenGeo.

Mr_Chimp
fuente

Respuestas:

8

WFS / GeoServer realmente no proporciona ninguna forma de generalización sobre la marcha en función de la escala, pero hay una extensión especial que hace lo que está buscando al hacer una pregeneralización.

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

jdeolive
fuente
1
+1 - muy buena extensión. Sería bueno tener un equivalente de MapServer ..
geographika
3

Algunas posibles soluciones:

  • ¿Realmente necesitas los datos en formato vectorial? Si los polígonos complejos grandes son solo para referencia, estarán bien como WMS / imágenes. Si puede simplificarlos, entonces probablemente no necesite la geometría de todos modos.
  • Puede pasar un parámetro de generalización a una capa de mapa a través de un parámetro personalizado, y usar esto para simplificar la geometría. Este hilo trata sobre MapServer, pero supongo que se puede hacer algo similar con GeoServer: http://osgeo-org.1803224.n2.nabble.com/WFS-Server-Control-output-by-scale-td2279383.html
  • También mencionado en el hilo anterior, puede almacenar los conjuntos de datos previamente simplificados para diferentes escalas y ocultarlos / mostrarlos en su mapa según sea necesario
  • Asegúrese de tener la compresión gZip activada en su servidor web, ya que esto reducirá los archivos GML / XML al menos a la mitad del tamaño
geographika
fuente
Definitivamente los necesito en formato vectorial, ya que quiero poder hacer clic en ellos para obtener más información y editar los polígonos (aunque obviamente solo quiero poder editar las formas verdaderas, no las versiones simplificadas, que podrían ser un poco complicado)
Mr_Chimp
1
@mr_chimp: puede usar la solicitud GetFeatureInfo de WMS para devolver solo la geometría y los atributos de la función con un clic del mouse.
geographika
3

Con la estrategia de clúster OL , puede simplificar la representación (para los usuarios) pero la cantidad de datos transferidos no será menor, porque la clúster se realiza en el lado del cliente.

Vea también la página de documentación .

(No sé acerca de las opciones disponibles en el lado del servidor)

simo
fuente
Tal vez me equivoque, pero la estrategia de clúster parece ser para datos de puntos. Tengo datos de polígonos complejos que me gustaría simplificar.
Mr_Chimp
Esto no reduciría el tráfico de red, ya que se necesitarían todos los puntos para agrupar el lado del cliente.
geographika
@geographika> eso es lo que quería decir, pero como puedes adivinar, ¡olvidé la negación en mi oración (reparado ahora)! Sigue siendo una buena manera de mejorar la legibilidad para los usuarios finales
simo
@Mr_Chimp> no hay equivalente para polígonos, de hecho
simo
0

Si le preocupa que el WFS sea 'pesado' (su salida GML es detallada por naturaleza), mi consejo es que, en lo posible, utilice Texto conocido (WKT). Supongo que la estrategia BBox de OpenLayers es "compatible" con WKT.

dariapra
fuente