Estoy tratando de abordar un problema de SIG web y necesito averiguar la mejor estrategia. Tengo un mapa con 30.000 celdas que forman una cuadrícula para la provincia de Alberta. Tengo una lista de puntos de datos para cada celda: unos 50 campos indicadores y valores para cada celda. Por ejemplo, un valor podría ser la población humana, por lo que cada celda tendría un valor de población humana para esa celda. Quiero hacer un mapa interactivo que pueda mostrar esos valores visualmente, ya sea con cuadrados para las celdas, o un tipo de mapa de calor mezclado. Más allá de eso, me gustaría ser capaz de hacer cálculos compuestos en todos los puntos de datos y utilizar esos cálculos para hacer mapas adicionales. Teniendo en cuenta los cálculos, hay aproximadamente 300.000 permutaciones del mapa. Por si fuera poco, también es temporal; hay 16 cortes de tiempo diferentes. Es decir, 16 cortes de tiempo x 300.000 permutaciones.
Mi estrategia hasta ahora:
1) En el lado del servidor, calcular los valores de las celdas dinámicamente en tiempo de ejecución y enviar los valores al cliente (los 30.000). Esto se traduce aproximadamente en un valor por cada cuadrado de 3x3 píxeles en una imagen de 525px x 525px en la pantalla.
2) En el lado del cliente con capas abiertas, utilizar un png de 1px que pueda ser redimensionado y tener el valor alfa ajustado como sea necesario para mostrar el diferente gradiente de color correspondiente al valor de los datos de cada celda. El png se redimensionaría a medida que el mapa se acerque o se aleje. En teoría, se colocarían con precisión para formar una cobertura general del mapa como cuadrados o, si se utiliza el enfoque del mapa de calor, se superpondrían entre sí lo suficiente como para formar una cobertura general.
La pregunta:
¿Es razonable calcular esos valores de las celdas dinámicamente en el servidor y luego enviarlos a una interfaz de OpenLayers en tiempo real? Estoy seguro de que el servidor puede realizar los cálculos, pero ¿puede OpenLayers mostrar razonablemente 30.000 puntos de datos a la vez en un mapa? ¿Es razonable esperar poder crear una cobertura general utilizando datos de puntos? Supongo que estoy tratando de crear el equivalente de un mapa vectorial que tiene 30.000 formas que dan 100% de cobertura del mapa, pero el uso de datos de puntos para simplificar.
Las estrategias alternativas en mi mente son:
a) generar los mapas en tiempo real en el servidor y enviarlos como capas rasterizadas al cliente
b) generar todas las permutaciones por adelantado y almacenarlas en el servidor como mapas rasterizados
¿Alguna idea? ¿Mi enfoque está equivocado y no es el adecuado? ¿Algún consejo sobre un método mejor?
Agradecería cualquier opinión al respecto. Si estáis interesados, incluso podría contratar a un desarrollador para que me ayude.
¡Muchas gracias!
Noah