¿Cuál es la forma más rápida (en cuanto al rendimiento) de servir las funciones de PostGIS?

12

Estoy interesado en la forma más rápida de servir las funciones de PostGIS. Puedo encontrar varias mejoras y alternativas de WMS (MapProxy, TileCache, Mapnik ...) pero no tantas mejoras y alternativas de código abierto de WFS. No me interesan los mosaicos, sino los polígonos sobre mi capa base. Servido rápido

¿Podría complacerme señalar en la dirección correcta?


Actualizar:

Olvidé mencionar que mi aplicación muestra información catastral. Y los polígonos catastrales deben ser seleccionables (no editables, solo se resaltan al hacer clic en ellos).

En este momento estoy usando una combinación de WMS + Django que genera objetos GeoJSON cuando el usuario hace clic en una parte del mapa, para evitar situaciones como miles de polígonos al mismo tiempo en el cliente (OpenLayers).

No sé si estoy en el camino correcto (¿debo evitar situaciones potencialmente difíciles como miles de encuestas en el cliente al presentarlas a través de WMS o cualquier otra solución? ¿Debería mejorar la forma en que se sirven los polígonos?)

Jorge Arévalo
fuente
1
¿Qué hardware tienes?
Mapperz
Ubuntu 10.04 32bits 512 MB RAM, ejecutándose bajo un servidor VMWare. Es una máquina de desarrollo, pero todavía no tengo acceso a otra. Debería funcionar razonablemente bien aquí (un requisito)
Jorge Arévalo

Respuestas:

6

GeoServer proporciona una configuración de usuario para controlar el número de lugares decimales en las geometrías que se introdujo allí para acelerar el servicio WFS.

También asegúrese de que el servidor esté comprimiendo la salida solo si su cliente puede descomprimirla de manera eficiente.

Finalmente, he escuchado cosas buenas sobre el pequeño OWS en términos de velocidad.

Ian Turton
fuente
He oído hablar de pequeños OWS pero nunca lo usé. Gracias por la sugerencia!
Jorge Arévalo
6

El almacenamiento en caché de WFS puede satisfacer sus necesidades. Que yo sepa, hay dos soluciones de código abierto que proporcionan almacenamiento en caché WFS: TileStache y GeoWebCache .

En la página de inicio de TileStache, la sección de características se dice "Genera mosaicos vectoriales a partir de fuentes de datos OGR en GeoJSON utilizables en Polymaps"

GeoWebCache tiene algunas capacidades de almacenamiento en caché WFS desde la versión 1.1.0 (la actual es 1.2.6):

GeoWebCache 1.1.0 (finalmente) lanzado

...

1.c Almacenamiento en caché WFS básico GeoWebCache 1.1.0 admite almacenamiento en caché WFS muy básico. Los resultados de las consultas se almacenan en el disco, actualmente no hay funciones para inspeccionarlos o eliminarlos mediante programación. El algoritmo se basa en hashes calculados y no verifica la unicidad, por lo que hay una pequeña posibilidad de colisiones. La motivación para este desarrollo fue el formato de salida SHP-ZIP (archivo de forma comprimido) en GeoServer. Estos archivos pueden ser enormes y tremendamente caros de calcular. Este servicio WFS, en su estado actual, no está destinado a ser utilizado en casos más complicados.

http://old.nabble.com/GeoWebCache-1.1.0-(finally)-released-td22870524.html

Lamentablemente, nunca he trabajado con TileStache ni GeoWebCache, por lo que no puedo compartir ninguna experiencia sobre el almacenamiento en caché de WFS.

dariapra
fuente
Gracias. Estoy considerando 2 opciones: renderizar mis polígonos y servirlos a través de WMS + caché (hay millones de ellos, tal vez demasiado para el cliente ...) o intentar servir mis polígonos a través de WFS + caché. Estoy trabajando con la primera opción en este momento.
Jorge Arévalo
1
Recomiendo la primera opción (representación WMS en el lado del servidor + caché). La opción WFS implica que la representación se realizará en el lado del cliente. En mi experiencia, este es un problema para los usuarios que tienen viejos navegadores web o computadoras, una variable que no puedes controlar.
dariapra
3

Estoy desarrollando una gran web-gis, trabajo con muchos datos (aproximadamente 700,000 características por capa). La única solución es la que está haciendo, WMS para representar las características y WFS para obtener la información de la característica. Lo que estoy haciendo (con buen rendimiento) es:

  • Geoservidor (con biblioteca JAI nativa )
  • Cuando el usuario hace clic en el mapa, se utiliza un wms getfeatureinfo para obtener la información (tanto la forma como los datos) de la función seleccionada (aquí debe implementar alguna función de filtrado, si tiene funciones superpuestas)
  • El resultado de getFeatureInfo se agrega como característica en otra capa para simular el "resaltado de selección"
Tommaso
fuente
¡Gracias! El proyecto finalmente se canceló, pero creo que su solución es buena.
Jorge Arévalo