Estoy pensando en probar la generación de mosaicos de una capa mundial para mapeo web.
En este contexto, quiero saber cómo puedo calcular el número de mosaicos (256x256 para tilecache, si lo recuerdo). Necesitaré n niveles en las coordenadas WGS84.
Tal vez usaré una solución compuesta con mosaicos pregenerados y sobre la marcha, pero tengo que saber al final el espacio disponible en disco si se generan cada mosaico y la cantidad de archivos que representará.
Hay dos objetivos, el tiempo que tomará y el espacio en disco necesario.
Cualquier información es bienvenida
Editar:
Encontré este script para calcular la cantidad de mosaicos a generar según los niveles de zoom y la extensión de sus datos. Ver esta esencia https://gist.github.com/1675606
web-mapping
tiles
tilecache
ThomasG77
fuente
fuente
Respuestas:
Aquí hay una hoja de Excel en Google Docs del equipo de GeoSolutions (http://geo-solutions.blogspot.com/2010/12/estimating-time-and-space-required-to.html)
https://spreadsheets4.google.com/ccc?key=tyCIm7rz8753DUGC9FyOXaw#gid=0
fuente
Hice una hoja de trucos que enumera el número total de mosaicos para niveles de zoom dados.
Tiene dos mesas. Uno que muestra la cantidad de niveles de zoom necesarios para mostrar cosas a una determinada escala, comenzando desde un mosaico que muestra a las personas.
El otro muestra la cantidad de niveles de zoom necesarios si se comienza con un mapa mundial y niveles de detalle progresivos:
fuente
Esta es una pregunta muy antigua, pero hay (al menos) dos advertencias importantes, dependiendo de la tarea en cuestión.
(2) ya se ha explicado, pero como ejemplo tengo una pirámide de mosaicos donde el tamaño total del archivo es de 168 MB, pero su tamaño en el disco es superior a 600 MB. Hace que sea mucho más importante acertar (1).
En cuanto a (1): considere si su trabajo de 'archivo mundial' involucra solo límites de países.
Cualquier mosaico que no sea un límite puede servirse con uno de dos mosaicos 'alt': un mosaico 'mar' (azul) para cualquier lugar que no esté dentro de un país, o un mosaico 'bloque' (relleno) para mosaicos que están completamente dentro de un frontera nacional. Solo se deben procesar los mosaicos que incluyen un segmento de borde; el resto se puede 'omitir'.
¿Por qué es esto? Porque todos los bloques de un tipo específico (tipo (mar, tierra) o tipo (mar, país a, país b, etc.) serán idénticos.
El mosaico 'bloque' podría ser de un color para cada país, o un color para todo el mundo, o un mosaico en blanco (si está superponiendo los contornos del país sobre un fondo).
Los mosaicos de 'bloque' solo necesitan renderizarse una vez (por ejemplo, 1 mosaico de 256x256, completamente lleno con el color deseado).
Cuando se crean los mosaicos, puede probar
(a) si su 'padre' - el mosaico en un nivel de zoom menos - existe; y
(b) si es un mosaico de 'bloque' (es decir, está completamente lleno de un color).
En el caso (a) el mosaico no necesita ser renderizado; si el padre no existe es porque el padre era completamente un bloque de mosaico y fue eliminado.
En el caso (b) (donde el padre existe, por lo que el mosaico necesita ser probado), si se trata de un mosaico de bloques, entonces se puede eliminar de forma segura de la pirámide de mosaicos. (La prueba de block-tile-ness se basa simplemente en el tamaño del archivo. Un mosaico de 256x256 enteramente de un color es un tamaño muy preciso, y la probabilidad de que un mosaico de 'contenido adecuado' sea del mismo tamaño es cero).
Eliminar estos mosaicos durante el proceso de creación agrega un tiempo mínimo al ciclo de representación de mosaicos, pero ahorra grandes cantidades de espacio en disco. La alternativa es renderizar todo y luego buscar recursivamente la pirámide para bloques de bloques y eliminarlos: esto lleva más tiempo.
Una vez que se construye la pirámide, el procedimiento de llamada de mosaico puede ser predeterminado al mosaico de 'bloque' si va a buscar mosaicos / z / x / y y obtiene un 404.
Para ver por qué este es el caso, considere renderizar un zoom de 256x256 = 1 donde el cuadrante superior está completamente vacío. Usted sabe con certeza que las 4 fichas con zoom = 2 que cubren la misma área también estarán vacías. Del mismo modo, las 16 fichas con zoom = 3 y así sucesivamente.
Por lo tanto, en cualquier momento durante el proceso de mosaico donde el mosaico es un color de bloque (o está vacío), se pueden ignorar todos los tiempos a niveles más altos de zoom.
Esto ahorra grandes cantidades de almacenamiento y mucho tiempo en el proceso de mosaico.
Una advertencia a estas advertencias: un trabajo de mosaico más complejo activará diferentes capas a diferentes niveles de zoom. Si este es el caso, se debe tener mucho cuidado para garantizar que la prueba 'principal' no se realice cuando el nivel de zoom es uno donde se incluye una nueva capa en el conjunto de renderizado.
fuente