MS RFC 130:添加对Z-top的支持,这是一个多SQLite、多棱锥缓存结构¶
- 日期
2020-01-30
- 作者
Jérome Boué
- 联系方式
- 状态
采用
- 最后更新
2020-01-30
- 版本
MapCache 1.10版
概述¶
此RFC建议将对MapCache的支持添加到一个新的缓存结构中,该结构包含多个按多个棱锥体组织的SQLite缓存:在最低缩放级别上为一个棱锥体,然后在给定缩放级别(如8)上为多个棱锥体,称为 最高缩放级别 . 这些棱锥体中的每一个都以顶部缩放级别的一个平铺开始,然后在下一个缩放级别的四个平铺开始,依此类推。当然,最高缩放级别值是可配置的。
下图说明了此缓存结构。

理论基础¶
这种结构的主要优点是,当用户只想脱机使用世界的一个子集时:只需要复制两个(相对较小的)SQLite文件。
建议的解决方案¶
从配置的角度来看,类的多SQLite缓存 ztop 指定为 <top>
定义顶部缩放级别的标记。需要模板键来确定要使用的SQLite文件。
<!-- multi-pyramid, multi-SQLite, starting at zoom level 8 -->
<cache name="z8" type="sqlite3">
<top>8</top>
<dbfile top_fmt="%02d">/path/to/z{top}-{top_x}-{top_y}.sqlite3</dbfile>
</cache>
<!-- single cache from zoom levels 0 to 7 -->
<cache name="z1-7" type="sqlite3">
<dbfile>/path/to/z0-0-0.sqlite3</dbfile>
</cache>
<!-- Composite cache made of all caches to address all zoom levels -->
<cache name="zfull" type="composite">
<cache min-zoom="0" max-zoom="7">z1-7</cache>
<cache min-zoom="8">z8</cache>
</cache>
将提供以下模板密钥:
{{top}}
替换为最高缩放级别。{{top_x}}
替换为从左开始的顶部缩放级别的平铺索引的x值{{top_y}}
替换为顶部缩放级别的平铺索引的y值,从底部开始{{inv_top_x}}
替换为从右开始的顶部缩放级别的平铺索引的x值{{inv_top_y}}
替换为顶部缩放级别的平铺索引的y值,从顶部开始
将提供以下格式属性: top_fmt
, top_x_fmt
, top_y_fmt
, inv_top_x_fmt
, inv_top_y_fmt
. 他们默认 "%d"
.
向后兼容性问题¶
没有。
文件需求¶
MapCache Cache Types 文档将被更新。
投票历史¶
由PSC成员JeffM、MikeS、JeromeB、JukkaR、Evner、SethG、SteveL、Stephannm+1采纳