Estou pensando em testar a geração de blocos de uma camada mundial para o mapeamento da web.
Nesse contexto, quero saber como posso calcular o número de blocos (256x256 para tilecache, se bem me lembro) que precisarei de n níveis nas coordenadas WGS84.
Talvez eu use uma solução composta com blocos pré-gerados e em tempo real, mas preciso saber no final o espaço em disco disponível se todos os blocos forem gerados e o número de arquivos que ele representará.
Existem dois objetivos: o tempo necessário e o espaço em disco necessário.
Quaisquer informações são bem-vindas
Editar:
Encontrei esse script para calcular o número de blocos a serem gerados, dependendo dos níveis de zoom e da extensão dos dados. Veja esta lista https://gist.github.com/1675606
fonte
Respostas:
Aqui está a planilha do Excel no Google Docs da equipe GeoSolutions (http://geo-solutions.blogspot.com/2010/12/estimating-time-and-space-required-to.html)
https://spreadsheets4.google.com/ccc?key=tyCIm7rz8753DUGC9FyOXaw#gid=0
fonte
Fiz uma folha de dicas que lista o número total de peças para determinados níveis de zoom.
Tem duas mesas. Um mostrando o número de níveis de zoom necessários para mostrar as coisas em uma determinada escala, a partir de um bloco mostrando as pessoas.
O outro mostra o número de níveis de zoom necessários se começar com um mapa do mundo e níveis de detalhes progressivos:
fonte
Essa é uma pergunta muito antiga, mas existem (pelo menos) duas advertências importantes, dependendo da tarefa em questão.
(2) já está explicado, mas como exemplo, tenho uma pirâmide de blocos em que o tamanho total do arquivo é 168 MB, mas seu tamanho no disco é superior a 600 MB. Torna muito mais importante acertar (1).
Quanto a (1): considere se o seu trabalho de 'arquivo mundial' envolve apenas fronteiras do país.
Qualquer ladrilho que não seja um limite pode ser servido com um dos dois ladrilhos 'alt' - um ladrilho 'mar' (azul) para qualquer lugar que não esteja dentro de um país ou um ladrilho 'bloco' (preenchimento) para ladrilhos totalmente dentro de um fronteira nacional. Somente blocos que incluem um segmento de borda precisam ser renderizados - o restante pode ser "padronizado".
Por que é isso? Como todos os blocos de um tipo específico (digite (mar, terra) ou digite (mar, país a, país b, etc)) serão idênticos.
O bloco 'bloco' pode ter uma cor para cada país, ou uma cor para o mundo inteiro, ou um bloco em branco (se você estiver sobrepondo os contornos do país em um plano de fundo).
Os blocos de bloco precisam ser renderizados apenas uma vez (por exemplo, 1 bloco de 256x256, totalmente preenchido com a cor desejada).
Quando os blocos estão sendo criados, você pode testar
(a) se o seu 'pai' - o bloco com um nível de zoom a menos - existir; e
(b) se for um bloco 'bloco' (ou seja, é totalmente preenchido com uma cor).
No caso (a) o ladrilho não precisa ser renderizado; se o pai não existe, é porque o pai era inteiramente um bloco e foi excluído.
No caso (b) (onde o pai existe para que o bloco precise ser testado), se for um bloco de blocos, ele poderá ser excluído com segurança da pirâmide de blocos. (O teste para o bloco-bloco-ness é simplesmente baseado no tamanho do arquivo. Um bloco de 256x256 inteiramente de uma cor é um tamanho muito preciso, e a probabilidade de um bloco de 'conteúdo adequado' ter o mesmo tamanho é zero).
A exclusão desses blocos durante o processo de criação adiciona tempo mínimo ao loop de renderização de blocos, mas economiza grandes quantidades de espaço em disco. A alternativa é renderizar tudo e, em seguida, procurar recursivamente na pirâmide por blocos de blocos e excluí-los: isso leva mais tempo.
Depois que a pirâmide é construída, o procedimento de chamada de bloco pode usar como padrão o bloco 'bloco' se procurar por blocos / z / x / y e obter um 404.
Para ver por que esse é o caso, considere renderizar um zoom de 256x256 = 1, onde o quadrante superior está totalmente vazio. Você sabe com certeza que as 4 peças em zoom = 2 que cobrem a mesma área também estarão vazias. Da mesma forma, as 16 peças em zoom = 3 e assim por diante.
Portanto, a qualquer momento durante o processo de mosaico em que o bloco é da cor de um bloco (ou está vazio), todos os momentos em níveis mais altos de zoom podem ser ignorados.
Isso economiza grandes quantidades de armazenamento e muito tempo no processo de colocação em mosaico.
Uma advertência para essas advertências: um trabalho de mosaico mais complexo alternará camadas diferentes em diferentes níveis de zoom. Se for esse o caso, deve-se tomar muito cuidado para garantir que o teste 'pai' não seja executado quando o nível de zoom for aquele em que uma nova camada seja incluída no conjunto de renderização.
fonte