基于 MBTiles 规范扩展的缓存文件格式说明
MBTiles 是由 MapBox 制定的一种将瓦片地图数据存储到SQLite数据库中并可快速使用,管理和分享的规范。该规范由MapBox制定,详见http://mapbox.com/mbtiles-spec/。
SuperMap iServer为了满足自身应用的需求,不仅支持生成和使用满足MBTiles规范的瓦片地图数据,并且基于原规范对MBTiles中的内容进行了扩展。扩展后的.mbtiles文件支持任意坐标系,支持任意分辨率,支持JPG和PNG混合格式的地图瓦片数据。
扩展后的.mbtiles文件仍然使用元数据表”metadata”和瓦片数据表”tiles”来对瓦片地图数据进行管理。
metadata元数据表采用键值对的形式来存储地图瓦片数据的相关设置,包括两个文本类型的字段”name”和”value”,与MBTiles 1.1规范一致。表结构如图1所示:

图1 元数据表的表结构
元数据表的内容举例如表1所示:
表1 元数据表举例
|
元数据表的各字段(keys)说明如表2所示:
表2 元数据表各字段描述
|
tiles 瓦片数据表包括所有的瓦片数据和用于定位瓦片数据的一些值。除MBTiles1.1规范的zoom_level, tile_colum, tile_row, tile_data四个字段外,增加了resolution字段,支持任意比例尺、任意分辨率。表结构如图2所示:

图2 瓦片数据表的表结构
瓦片数据的表内容举例如图3:

图3 瓦片数据表的表内容举例
注:当瓦片对应的地面分辨率与表 3 中的地面分辨率无法对应时,zoom_level值为-1。
根据resolution值或对应比例尺读写对应瓦片数据。
表3 MBTiles各显示级别参数列表
|
tiles瓦片数据表中resolution存储时保留11位有效数字(四舍五入)。有效数字:从近似数的左边第一个不为0的数字起,到精确到的数为止,所有的数字叫这个近似数的有效数字(0.00123的有效数字是1,2,3,有效位数是3)。示例如表4所示:
表4 resolution近似值计算示例
|
Java中计算resolution的参考代码如下:
public static String getResolutionString(double resolution) {
int n = (int) Math.log10(resolution);
int precision = 11;
if (resolution < 1.0) {
n--;
}
int scale = precision - 1 - n;
return new BigDecimal(resolution).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
}
基于 MBTiles 规范扩展的缓存文件格式说明的更多相关文章
- 支持 MBTiles 规范的预缓存
SuperMap iServer 支持生成符合MBTiles规范的预缓存(MBTiles是由MapBox制定的一种将瓦片地图数据存储到SQLite数据库中并可快速使用,管理和分享的规范. 该规范由Ma ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- 缓存篇~第七回 Redis实现基于方法签名的数据集缓存(可控更新,分布式数据缓存)
返回目录 本篇文章可以说是第六回 Microsoft.Practices.EnterpriseLibrary.Caching实现基于方法签名的数据集缓存(可控更新,WEB端数据缓存)的续篇,事实上,有 ...
- iOS开发--基于AFNetWorking3.0的图片缓存分析
图片在APP中占有重要的角色,对图片做好缓存是重要的一项工作.[TOC] 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.C ...
- ExtJS4.2学习(13)基于表格的扩展插件---rowEditing
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-24/182.html --------------- ...
- SpringMVC + ehcache( ehcache-spring-annotations)基于注解的服务器端数据缓存
背景 声明,如果你不关心java缓存解决方案的全貌,只是急着解决问题,请略过背景部分. 在互联网应用中,由于并发量比传统的企业级应用会高出很多,所以处理大并发的问题就显得尤为重要.在硬件资源一定的情况 ...
- 怎样基于谷歌地图的Server缓存公布Image Service服务
怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. ...
- 基于 angular 规范的 commit
基于 angular 规范的 commit commit格式如下: <type>: <subject> <BLANK LINE> <body> type ...
- Google Cardboard的九轴融合算法——基于李群的扩展卡尔曼滤波
Google Cardboard的九轴融合算法 --基于李群的扩展卡尔曼滤波 极品巧克力 前言 九轴融合算法是指通过融合IMU中的加速度计(三轴).陀螺仪(三轴).磁场计(三轴),来获取物体姿态的方法 ...
随机推荐
- 生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)
本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/8,欢迎留言. 安装软件包:mongodb-linux-x86_64-3.4.1.tgz ...
- Cassandra--启用用户认证和用户管理
======================================================== 启用用户认证和创建超级用户 需要针对每个节点进行配置修改和重启,但授权操作仅需要在任一 ...
- zeebe 为微服务架构的工作流引擎
zeebe 是灵活.轻量的基于微服务架构的工作流引擎 包含以下特性: 可视化的额工作流 审计日志以及历史 水平缩放 持久化&&容错 消息驱动 操作容易 语言无关 工作流基于标准bpmn ...
- ksonnet 一个简化编写以及部署kubernetes的工具
ksonnet 是一个基于jsonnet的快速简化kubernetes yaml 配置的工具,可以实现配置的复用 同时也包含一个registry 的概念,可以实现可复用组件的分发,同时支持helm 环 ...
- C# 键盘响应事件及键值对照表
键盘响应事件总结 键盘响应事件是在用户按下某个键后触发的事件,可以是任意操作,但不是任意键都可以被捕获的. 原型:public event KeyPressEventHandler KeyPress ...
- focus、input、keydown、keyup、change、blur方法的差异
focus.input.keydown.keyup.change.blur方法的差异: https://blog.csdn.net/yiifaa/article/details/52372022 bl ...
- TP5模型belongsTo和hasOne的区别
在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有 ...
- 代码问题: 【ADNet】
[ADNet]: Yoo S, Yun K, Choi J Y. Action-Decision Networks for Visual Tracking with Deep Reinforcemen ...
- centos7 如何在用户级对资源进行限制
我们已经知道,centos7上建议使用sytemd进行资源限制. 本文主要介绍如何使用systemd进行用户级资源限制. 以orange用户为例. 方案一 临时有效 配置如下: # systemctl ...
- 自然语言处理工具python调用hanlp中文实体识别
Hanlp作为一款重要的中文分词工具,在GitHub的用户量已经非常之高,应该可以看得出来大家对于hanlp这款分词工具还是很认可的.本篇继续分享一篇关于hanlp的使用实例即Python调用hanl ...