【问题标题】:Why do I need so many map tiles to serve a map?为什么我需要这么多地图图块来提供地图?
【发布时间】:2016-10-15 20:45:17
【问题描述】:

据我了解,每个地图图块都是 256x256 像素的图像。所以...如果我正在查看 1400 x 1400 像素的屏幕...大约 36 个图块可以覆盖整个屏幕(6 个图块 x 6 个图块)...假设我希望我的地图具有最高缩放级别...地图上相当于 20 个屏幕的区域...对于该缩放级别,这是 700 个图块,从那里向下是更缩小的级别。所以最多这就像 10k 个图块。

我现在正在制作俄勒冈州波特兰市的地图……我刚刚导出了我的地图图块并将它们转换为 png……并且有 100 万个文件。什么??!?!我拥有的最高缩放级别是 18,最低是 10....所以不知何故这些图块正在变得小型化,但我不知道为什么。

我在这里错过了什么?

【问题讨论】:

    标签: tilemill mbtiles


    【解决方案1】:

    您遇到的是求幂。在每个更深的缩放级别,每个图块都分为 4 个部分,因此您的图块总数是 4 倍。这在缩放级别之间复合:因此,如果您在 z5 处有 1 个图块,则相同的地理区域在 z10 处由 4*4*4*4=256 个图块表示,或在 z15 处由 65,536 个图块表示。

    如果您正在查看 z10 的波特兰地图,它需要大约 16 个图块来覆盖屏幕,则该区域由 16*4^8 个图块表示,实际上是 1,048,576 个图块。

    【讨论】:

    • 谢谢!将 100 万个文件放到服务器上很麻烦。我不得不使用 mkfs -I 128 -i 2048 来创建一个具有异常小块大小的文件系统。我遇到了“磁盘上没有剩余空间”,最终得知这是一个 Inodes 问题,而不是硬盘空间问题。可能是 tmi,但对于其他任何人来说......祝你好运。
    • 这就是为什么我和 Mapbox 的一些人创建了 MBTiles 格式的原因,TileMill 和其他工具将其用作导出:SQLite 比大多数文件系统更适合许多小文件,并且传输SQLite 数据库效率更高。它需要一个服务器来提取请求的图像,但另一方面它避免了很多问题。
    • 是的...mbtiles 文件很棒...但是我仍然需要使用 mb-util 解压缩它们,然后我又遇到了同样的问题 - 在服务器上有 100 万个文件
    • 嗯...我以前没有意识到这一点。我不知道传单也适用于 mbtiles 文件?看起来有一个插件:groups.google.com/forum/#!topic/leaflet-js/SlMWOyF4yVQ 好吧,我会的....但是,在这一点上,我已经经历了只使用一个好的老式 pngs 目录的麻烦。从 sqlite db 而不仅仅是图像目录提供切片有任何性能问题?
    • Leaflet 插件在技术上是有效的,但在这种情况下不是概念上的——当有人访问您的页面时,他们会下载一百万张图片。不是期望的行为。 MBTiles 服务器的性能通常非常快,因为从具有良好索引的数据库中提取图像几乎与访问磁盘一样快。
    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    相关资源
    最近更新 更多