世界层的磁盘空间和切片数


9

我正在考虑测试用于Web映射的世界图层的图块生成。

在这种情况下,我想知道如何计算图块的数量(如果我记得,我将需要256x256的图块缓存)在WGS84坐标中需要n个级别。

也许我会使用带有预生成图块的复合解决方案,并在运行时使用它,但是最后我必须知道可用磁盘空间(如果生成了每个图块)以及它将代表的文件数量。

有两个目标,所需的时间和所需的磁盘空间。

欢迎任何信息

编辑:

我发现此脚本可以根据缩放级别和数据范围来计算要生成的切片数。看到这个要点https://gist.github.com/1675606


Answers:



5

我做了一个备忘单,其中列出了给定缩放级别的图块总数。

它有两个表。一个显示以一定比例显示事物所需的缩放级别数,从显示人物的图块开始。

level 1: 1 # Person
level 2: 5 # Car
level 3: 21 # House building
level 4: 85 # Square
level 5: 341 # Small neighbourhood
level 6: 1,365 # Football stadium
level 7: 5,461 # Small farm
level 8: 21,845 # Central park New York
level 9: 87,381 # Entire airport
level 10: 349,525 # Small city (Copenhagen)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Large city (London)
level 13: 22,369,621 # Medium Island (Mallorca)
level 14: 89,478,485 # Large Island (Sicily)
level 15: 357,913,941 # Small country (Denmark, Estonia, Taiwan)
level 16: 1,431,655,765 # Medium Country (Korea, Greece)
level 17: 5,726,623,061 # Region (Southern Europe, Arabian Peninsula)
level 18: 22,906,492,245 # Small continent or large country (China)
level 19: 91,625,968,981 # Medium continent (Africa) or huge country (Russia) 
level 20: 366,503,875,925 # Asia
level 21: 1,466,015,503,701 # The World

另一个显示从世界地图开始所需的缩放级别数,以及逐步的细节级别:

level 1: 1 # The World
level 2: 5 # Large contenents
level 3: 21 # Medium continents, huge countries
level 4: 85 # Small continents, large countries
level 5: 341 # Region (Southern Europe, Arabian Peninsula)
level 6: 1,365 # Medium Country (Korea, Greece)
level 7: 5,461 # Small country (Denmark, Estonia, Taiwan)
level 8: 21,845 # Large Island (Sicily)
level 9: 87,381 # Medium Island (Mallorca)
level 10: 349,525 # Large city (London)
level 11: 1,398,101 # Medium city (Amsterdam)
level 12: 5,592,405 # Small city (Copenhagen)
level 13: 22,369,621 # Entire airport
level 14: 89,478,485 # Central park New York
level 15: 357,913,941 # Small farm
level 16: 1,431,655,765 # Football stadium
level 17: 5,726,623,061 # Small neighbourhood
level 18: 22,906,492,245 # Square
level 19: 91,625,968,981 # House building 
level 20: 366,503,875,925 # Car
level 21: 1,466,015,503,701 # Person

1

这是一个非常老的问题,但是(至少)有两个重要警告,具体取决于当前的任务。

  1. 该任务可能导致渲染(非常)大量的空图块,而无需对图块创建过程进行特定管理。
  2. 平铺金字塔的磁盘大小可能比其组成文件大小的总和大很多(超过100%),这是由于大多数存储中的最小簇大小为4KB(又称为块大小)。

(2)的解释已经相当多了,但是作为一个示例,我有一个平铺金字塔,其中文件的总大小为168MB,但磁盘上的文件大小却超过600MB。正确实现(1)更为重要。

关于(1):请考虑您的“世界档案”工作是否仅涉及国家/地区边界。

任何不是边界的图块都可以与两个“替代”图块之一一起使用-一个“海”图块(蓝色)用于不属于某个国家/地区的任何地方,或者一个“块”(填充)图块用于完全在一个区域内的图块。国界。仅需要渲染包含边界线的图块-其余的图块可以“默认”掉。

为什么是这样?因为所有特定类型的块图块(在(海,陆)中键入,或在(海,国家a,国家b等)中键入)都是相同的。

“块”图块可以是每个国家/地区一种颜色,也可以是整个世界的一种颜色,也可以是空白图块(如果您将国家/地区轮廓叠加在背景上)。

“块”图块仅需要渲染一次(例如,1 256x256图块,完全填充了所需的颜色)。

创建图块时,您可以进行测试

(a)是否存在其“父级”(缩小一级的图块);和

(b)如果它是一块“块状”砖(即它完全用一种颜色填充)。

在(a)情况下,无需渲染图块;如果父级不存在,那是因为父级完全是块图块并已被删除。

在情况(b)中(如果存在父对象,则需要对图块进行测试),如果它是块图块,则可以安全地将其从图块金字塔中删除。(对块平铺度的测试仅基于文件大小。完全为一种颜色的256x256瓦片是非常精确的大小,“适当内容”瓦片为相同大小的概率为零)。

在创建过程中删除这些图块会在图块渲染循环中添加最少的时间,但会节省大量的磁盘空间。另一种方法是渲染所有内容,然后递归地在金字塔中搜索块图块并删除它们:这需要更长的时间。

建立金字塔后,如果图块调用过程开始寻找tile / z / x / y并得到404,则该图块调用过程可以默认为“块”图块。

要了解为什么会这样,请考虑在顶部象限完全为空的情况下渲染256x256 zoom = 1。您可以肯定地知道,在zoom = 2处覆盖相同区域的4个图块也将为空。同样,缩放比例为3时的16个图块,依此类推。

因此,在平铺过程中,如果平铺为块色(或为空),则任何时候都可以忽略所有处于较高缩放级别的时间。

这样可以节省大量存储空间,并节省平铺过程中的大量时间。

对这些警告的警告:更复杂的切片作业将以不同的缩放级别在不同的图层上切换。如果是这种情况,则必须格外小心,以确保在缩放级别为渲染集中包含新图层的缩放级别时,不执行“父级”测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.