¿Cuáles son mis opciones para la agrupación en clústeres del lado del servidor utilizando herramientas GIS de código abierto?

8

Necesito hacer una aplicación web que muestre más de 40K Puntos en un mapa. Estos puntos están en todo el mundo. Usando el Servicio WFS y OpenLayers, es posible hacer clusters en un conjunto pequeño de puntos, pero no es realmente útil hacer estos clusters en el lado del cliente para mi caso.

¿Cómo puedo hacer clustering del lado del servidor, en un servicio WMS o WMS en mosaico? Existen varias opciones de este tipo para los mapas de Google. ¿Cuáles son las herramientas correspondientes en el campo OSGeo?

Devdatta Tengshe
fuente

Respuestas:

3

Las últimas versiones de MapServer (6.0+) son compatibles con la agrupación en el lado del servidor: http://mapserver.org/mapfile/cluster.html

Desde la versión 6.0, MapServer tiene la capacidad de combinar múltiples entidades de una capa de puntos en entidades individuales (agregadas) en función de sus posiciones relativas. Solo se admiten capas POINT. Esta característica se agregó a través de MS RFC 69: Soporte para la agrupación de características en capas de puntos.

La propuesta para esta funcionalidad se detalla en: http://mapserver.org/development/rfc/ms-rfc-69.html

Una configuración de muestra a continuación:

LAYER
  NAME "my-cluster"
  TYPE POINT
  ...
  CLUSTER
     MAXDISTANCE 20  # in pixels
     REGION "ellipse"  # can be rectangle or ellipse
     GROUP (expression)  # an expression to create separate groups for each value
     FILTER (expression) # a logical expression to specify the grouping condition
  END

Esta capa se puede servir como cualquier otra como un WMS (MapServer también admite mosaico).

No he intentado esto, y los documentos no están claros, pero también puede admitir un servicio WFS agrupado.

Una alternativa es hacer clustering en el nivel de la base de datos en lugar de en el nivel del servidor web, entonces puede usar cualquier servidor WMS, vea: Clustering espacial con PostGIS .

geographika
fuente
0

Hay un par de opciones. Puede implementar una capa WMS. Esto esencialmente convertirá sus características individuales en archivos de imagen. Esto mejora el rendimiento para grandes conjuntos de datos, pero a expensas de la funcionalidad del lado del cliente (por ejemplo, no poder seleccionar características individuales en el mapa).

Una alternativa mejor (que depende del rendimiento) es probablemente implementar clustering en el lado del servidor para su capa WFS en OpenLayers .

pecoanddeco
fuente
¿Podría aclarar qué quiere decir al implementar una capa WMS? ¿Estás hablando de usar los servicios WMS?
Devdatta Tengshe