Eu tenho um projeto usando OpenLayers que exibe dados de radar em um mapa. Os dados do radar são apenas um monte de polígonos, cada um deles preenchido com uma das 6 cores possíveis. O objetivo é animar o radar no mapa. Cada arquivo contém dados de radar por um determinado tempo e os arquivos são separados por cerca de 5 minutos, portanto, minha abordagem atual é percorrer todos os arquivos e carregá-los um a um em novas camadas separadas. Depois de criada, cada camada tem sua visibilidade definida como falsa e é adicionada ao mapa. Em seguida, animar as camadas usando um timer que ativa a visibilidade de uma camada e desativa a visibilidade da camada anterior. Atualmente, as camadas são todas vetoriais e os dados são carregados dos arquivos KML, embora os arquivos de dados possam ter praticamente qualquer formato que funcione melhor para este projeto.
O problema dessa abordagem é que, quando atingi um período de tempo bastante grande (cerca de 3 horas) de dados (equivalente a aproximadamente 36 camadas), o consumo de memória fica bastante alto (cerca de 250mb). O produto final deve ser capaz de lidar com até 18 horas de dados em um loop que, com base no número acima, exigiria mais de 1 GB de memória apenas para a animação e provavelmente travaria o navegador ou, pelo menos, o tornaria muito lento.
Tentei a mesma coisa usando camadas WMS para cada camada, mas o redesenho era muito lento (a animação muda de camada a cada 100ms) e o consumo de memória não era muito melhor que a versão vetorial.
Eu vasculhei a rede tentando encontrar algum exemplo de como fazer isso, mas até agora estou chegando de mãos vazias. Alguém aí tem alguma sugestão de como fazer isso? Vou aceitar todas as idéias que você tiver neste momento, já que estou preso há semanas há nenhuma resposta à vista.
fonte
Você já pensou em simplificar as camadas de vetor para reduzir o tamanho do arquivo. Se os polígonos contiverem mais vértices do que o necessário para os fins da exibição, simplificar (suavizar) reduzirá o tamanho do arquivo com o custo de detalhes reduzidos. Não sei ao certo qual software você tem à sua disposição, mas vários aplicativos de desktop GIS contêm uma função de geoprocessamento para simplificar os recursos.
fonte
Além de simplificar os dados (até um pouco pode economizar muito espaço), você tentou o MapServer ou alguma outra maneira de transformar seus dados em blocos com transparência e criar uma camada de mapa para ficar em cima da camada de plano de fundo. Eu já vi essa abordagem com mapas de choropleth que têm centenas a centenas de milhares de polígonos (ou marcadores), mas ainda não consegui tentar (devido ao requisito do lado do servidor).
fonte