Tengo un conjunto de sitios en los miles. No todos los usuarios ven los mismos Sitios en el mapa, por lo tanto, ACL. Los datos se almacenan en una base de datos no GIS (mssql, ora, etc.) y ahora se recuperan con una consulta SQL estándar y se devuelven al cliente (OpenLayers) con un JSP.
El código actual ya está optimizado para hacer clusters del lado del cliente (por lo que es menos desordenado para el cliente, pero todos los datos están ahí), recuperación del cuadro delimitador (por lo tanto, un subconjunto de datos pero tiene que ir al servidor para cada paneo / zoom para nuevos datos) e incluso clustering del lado del servidor (para reducir los datos enviados al cliente).
Lo que me gustaría en su lugar es generar imágenes / mosaicos para todos mis datos, de forma similar a cómo Google Maps muestra toneladas de pequeños puntos rojos para todos los resultados: http://bit.ly/d73qrw [búsqueda de Google Maps para "café"] y mostrar en el cliente. Y cuando haga clic en él, haga una llamada rápida ajax a un servicio WMS para obtener información. Esa es la idea al menos.
Pero aquí está el problema: no puedo configurar un servicio WMS estándar frente a mis datos porque no todos los usuarios ven los mismos datos. ¿Hay alguna manera de generar estos mosaicos sobre la marcha o hacer que WMS sea compatible con ACL?
edit - 9/22/2010 - Entonces descubrí cómo google genera los mosaicos, o más bien la tecnología detrás de ellos. Están utilizando las tablas de Google Fusion. Almacene N filas en sus tablas y luego, si los datos tienen conocimiento de lat / lon, el producto Fusion Table puede generar los mosaicos sobre la marcha (!). Este es el tipo de cosas que estoy buscando: un mapa eficaz con toneladas de datos. Pero, por supuesto, necesito que sea controlado por ACL. ¿Tiene sentido escribir una implementación ligera y personalizada de la especificación WMS o modificar un producto existente? Aunque geoserver parece mucho "simplemente" modificar para admitir ACL.
edit - 9/27/2010 - Alguna información más desde la adición de la recompensa. Mis datos están en Oracle. Ora espacial no está habilitado. En este momento, los datos se extraen a nivel empresarial y se convierten en datos, enviados al cliente donde el cliente coloca los "puntos" en el mapa. ACL se realiza en el nivel de lógica de negocios, no DB o ActivDir o algo así. La autenticación es simple, pero la Autorización no lo es, por lo que tuvo que ser capturada en el código. Me gustaría saber cómo crear mejor un servicio WMS para servir hasta miles de "puntos" en el mapa donde cada usuario verá un subconjunto diferente de puntos. ¿Es la respuesta un CQL_FILTER? Pero entonces, ¿cómo se configuran los parámetros? Una idea que tengo ahora es hacer un proceso de 2 pasos. Primero ejecute la consulta interna para obtener una lista de ID que el usuario permitió ver, luego cree una cadena de solicitud WMS con esas ID en el parámetro CQL_FILTER. ¿Hay algo que simplifique este proceso? Y si sigo con esto, ¿cómo puedo agregar esta capa como una capa "WMS" a un cliente Open Layers ya que para OL el punto final es mi código para obtener ID de DB y no del servicio WMS real en, por ejemplo, GeoServer?