Estou montando um aplicativo em que preciso criar uma grade de vetor que será usada para armazenar e exibir um mapa de calor. Possui os seguintes requisitos:
- Pode cobrir todo o planeta.
- A grande maioria dos quadrados da grade não terá valores.
- Eu não quero ter que armazenar a grade em si; Eu gostaria de calculá-lo em tempo real.
- A escala dos dados usados com a grade pode variar bastante.
- Eu espero que a grade do quadrado seja de 1 km a 100 km. (Estou ciente de quantos serão (~ 510 milhões por 1 km, ~ 51.000 por 100 km)).
- Os valores serão acumulados / agregados para cada quadrado da grade.
- Idealmente, eu seria capaz de usar facilmente células de grade menores para calcular valores para as maiores, em vez de armazenar os valores de células de grade maiores.
- Vou usar o OpenLayers para cobrir o OpenStreetMap.
- Eu o armazenarei no SpatiaLite ou SQLite, de preferência com suporte nativo (por exemplo, para SpatiaLite = um CRS suportado; ou para SQLite = um sistema baseado em números puros).
Então, minha pergunta é: que projeção devo usar para esta grade?
Além disso - existe uma boa maneira de projetar isso? Alguém sabe de uma boa solução potencial para esse problema ou já resolveu problemas semelhantes antes? Ou pode me apontar em uma direção útil.
Editar caso de uso - basicamente, estou agregando caixas delimitadoras de várias formas e tamanhos diferentes. Eles podem variar de alguns hectares a milhares de quilômetros quadrados. Eles também podem estar em diferentes projeções.
Abaixo está uma versão personalizada do tipo de coisa que pretendo realizar automaticamente em uma escala maior.
Muito Obrigado.
fonte
Respostas:
Os blocos OSM padrão estão no Spherical Mercator (SRID = 3857), portanto, provavelmente será mais fácil construir sua grade usando a mesma projeção.
Se você usa o SM, pode armazenar os dados no nível de zoom mais alto suportado pelo OSM ou no nível de zoom de nível mais alto em que você permitirá que os usuários aumentem o zoom. Se a cobertura for escassa, use uma estrutura de dados ao longo das linhas de
XIndex, YIndex, Count
onde os índices são os índices da grade de blocos no nível de zoom desejado, contagem é a contagem de recursos que cruzam esse bloco e não inclui entradas para pontos em que a contagem é zero. Em seguida, você pode simplesmente selecionar a contagem por índice ou, em níveis mais baixos de zoom, selecionar a soma da contagem por intervalo de índice, sabendo que, se a consulta retornar, nada será zero para a região especificada.
Obviamente, isso é uma abstração, estou assumindo uma camada de software entre isso e seu renderizador de mapa de calor. Uma descrição mais detalhada de como você renderizará o mapa de calor me ajudaria a dar melhores conselhos.
fonte
O valor armazenado em uma célula a partir de um mapa de calor geralmente é normalizado por sua área. Nesse caso, eu prefiro sugerir uma projeção de área igual, para que você possa agregar facilmente a uma escala maior
fonte
Esta é uma resposta para como você pode criar um mapa de calor. Minha sugestão é que você analise o sistema de células de grade de quarto de grau . O QDGC representa uma maneira de fazer quadrados de área (quase) iguais cobrindo uma área específica para representar qualidades específicas da área coberta. Os próprios quadrados são baseados nos quadrados grau que cobrem a terra. Ao redor do equador, temos 360 linhas longitudinais e, do norte ao polo sul, temos 180 linhas latitudinais. Juntos, isso nos dá 64800 segmentos ou ladrilhos cobrindo a terra. A forma dos quadrados se torna mais retangular quanto mais norte chegamos. Nos pólos, eles não são quadrados nem mesmo retangulares, mas acabam em triângulos alongados.
As células da grade podem ser divididas em quatro e as células da grade resultantes novamente divididas em quatro. O sistema fornece ao usuário uma convenção de nomenclatura previsível. Ao calcular as áreas para as diferentes células da grade, elas devem ser adequadas para apresentações dependentes da área.
Informações mais detalhadas e referências a alguns outros sistemas também estão disponíveis em um artigo publicado há alguns anos. O padrão é usado em vários atlas africanos para obter informações ambientais.
Shapefiles para diferentes continentes e países está disponível para download no meu blog.
Eu brinquei com o pensamento de estender o padrão, para que as células da grade acima ou abaixo de uma certa latitude pudessem ser divididas em duas, proporcionando assim um produto de mapa mais visualmente agradável quando usado.
fonte