MBTiles 1.2 规范翻译
MBTiles 1.2
可以参考超图的文档MBTiles扩展
具体实现可以参考浅谈利用SQLite存储离散瓦片的思路和实现方法
mapbox提供了一个简单实现测试代码,github地址在这里https://github.com/mapbox/mbtiler.git
子标签:
- Interaction: 实现交互所需的HTTP端点
- UTFGrid:此规范依赖于UTFGrid 1.2进行交互.
抽象
MBTiles是在SQLite数据库中存储地图瓦片数据的规范,用于即时使用和传送.
MBTiles文件称为tilesets(瓦片集),必须实现以下规范,以确保与设备的兼容性。
数据库规格
Tilesets使用version 3.0.0或更高版本的SQLite数据库。
仅使用SQLite核心功能; tilesets 无需扩展.
MBTiles数据库可以选用官方分配幻数(magic number)去快速识别为MBTiles。
数据库
注意: 所概述的schemas
尽量遵循接口。产生兼容结果的SQLite视图同样有效。
方便起见,本规范将表
(tables)和虚拟表
(virtual tables,视图views)都当做表(tables)。
Metadata 元数据
Schema 方案
数据库需要包含名为metadata
的table或view。
该表必须具有名为name
和value
的两列。metadata
表典型创建语句如下:
CREATE TABLE metadata (name text, value text);
Content 内容
metadata
表用作key/value
存储,用于保存一些配置settings
。
以下五个key是必须的:
name
: tileset的纯英文名称.type
:overlay
(覆盖型)或baselayer
(基本图层型).version
: tileset的版本,纯数字.description
: 描述图层(layer)的文本.format
: 瓦片数据的图像文件格式:png
或jpg
row
在metadata
中是推荐提供的,如有,可以提高性能。
bounds
: 呈现的地图区域的最大范围。Bounds
必须定义所有缩放级别所覆盖的区域。范围bounds
以WGS:84
中经纬度值表示,在OpenLayers Bounds
格式表示为-
左,下,右,上.全球范围为例:-180.0,-85,180,85
.attribution
:属性字符串,使用纯英文(和HTML)解释地图数据和(或)样式的来源.
通常的tilesets实现都支持这些附加键。
基于UTFGrid交互.
Tiles 瓦片
Schema 方案
数据库需要包含名为tiles
的表.
该表必须具有zoom_level
、tile_column
、tile_row
和tile_data
四列。tiles
表典型创建语句如下:
CREATE TABLE tiles (zoom_level integer, tile_column integer, tile_row integer, tile_data blob);
Content 内容
tiles
用于包含瓦片和用于定位的值。
zoom_level
、tile_column
和tile_row
列在其构造中遵循
Tile Map Service规范,但受限于以下形式:
假定是global-mercator (球面墨卡托SphericalMercator)
tile_data blob
列包含原始图像二进制数据.
图像文件的格式允许使用以下两种:
png
jpg
Grids 网格
有关网格和交互元数据本身的实现细节,请参阅UTFGrid规范:MBTiles规范仅涉及存储。
Schema 方案
数据库可以有可选的表grids
和grid_data
。
grids
必须具有zoom_level
、tile_column
、tile_row
和grid
四列。grids
表典型创建语句如下:
CREATE TABLE grids (zoom_level integer, tile_column integer, tile_row integer, grid blob);
grid_data
必须具有zoom_level
、tile_column
、tile_row
、key_name
和key_json
五列。grid_data
表典型创建语句如下:
CREATE TABLE grid_data (zoom_level integer, tile_column integer, tile_row integer, key_name text, key_json text);
Content 内容
grids
表包含UTFGrid
数据,gzip压缩。
grid_data
表包含grid key
到value
映射,将value
编码为JSON对象。
MBTiles 1.2 规范翻译的更多相关文章
- [转]MBTiles 1.2 规范翻译
MBTiles 1.2 可以参考超图的文档MBTiles扩展具体实现可以参考浅谈利用SQLite存储离散瓦片的思路和实现方法 mapbox提供了一个简单实现测试代码,github地址在这里https: ...
- Go语言安全编码规范-翻译(分享转发)
Go语言安全编码规范-翻译 本文翻译原文由:blood_zer0.Lingfighting完成 如果翻译的有问题:联系我(Lzero2012).匆忙翻译肯定会有很多错误,欢迎大家一起讨论Go语言安全能 ...
- BSON 1.0版本规范(翻译)
BSON 1.0版本规范 本文翻译自 http://bsonspec.org/spec.html BSON是用于存储零个或多个键/值对为一个单一的实体的一个二进制格式.我们称这个实体为文档(Docum ...
- JSON-RPC 2.0规范 翻译 中文版
JSON-RPC 2.0规范 起源日期: 2010-03-26(基于2009-05-24的版本号) 修正: 2013-01-04 作者: JSON-RPC 工作组 <json-rpc@googl ...
- Promise/A+规范-翻译
Promise 表示一个异步操作的最终结果,与之进行交互的方式主要是 then 方法,该方法注册了两个回调函数,用于接收 promise 的终值或本 promise 不能执行的原因. 本规范详细列出了 ...
- 3、LwIP协议栈规范翻译——概述
3.概述 像许多其他TCP/IP实现一样,分层协议设计已经成为设计lwIP实现的指南.每个协议实现为自己的模块,其中几个功能充当每个协议的入口点.尽管协议层是单独实现的,一些层却不全是,正如前面所叙述 ...
- 4、 LwIP协议栈规范翻译——流程模型
4.流程模型 协议实现的流程模型描述了系统被划分为不同的流程的方式.用于实现通信协议的一个流程模型是让每个协议作为一个独立的进程运行.有了这个模型,严格的协议分层被强制执行,并且协议之间的通信点必须严 ...
- 5、 LwIP协议栈规范翻译——操作系统仿真层
为了使lwIP可移植,操作系统特定的函数调用和数据结构不直接在协议的代码中使用.相反,当需要这样的函数调用和数据结构时,直接使用操作系统仿真层. 操作系统仿真层为操作系统服务提供统一的接口,如定时器, ...
- LwIP协议栈规范翻译——摘要目录
摘要 LwIP是一种TCP/IP协议栈的实现.LwIP协议栈专注于减少内存的使用和代码的大小,使LwIP适用于嵌入式系统中在有限的资源下能够使用小型的客户机.为了减少处理和内存的需求,LwIP使用裁剪 ...
随机推荐
- Java 线程与锁
Synchronization synchronized语法可以获取锁, 当其他线程持有锁的时候该线程想要获取锁将会进入等待状态, 直到没有其他线程持有该锁 显示使用 synchronized (lo ...
- 用非递归、不用栈的方法,实现原位(in-place)的快速排序
大体思路是修改Partition方法将原本枢数的调整放到方法结束后去做.这样因为数组右侧第一个大于当前枢数的位置就应该是未划分的子数组的边界.然后继续进行Partition调整.这种写法照比递归的写法 ...
- 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
这次主要给大家分享10款风格各异的CSS3按钮,如果你希望你的页面也能有很炫的样式,那么我相信这10款CSS3按钮就非常适合你,而且每一款都整理了源代码供参考,一起来看看吧. 1.绚丽的CSS3发光按 ...
- Linux命令行极简教程
1.命令行真的好吗 程序员的使命 维基百科的解释: 命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标, ...
- Linux系统性能优化
CPU性能评估 通过下面的命令能了解到CPU是否出现性能瓶颈,再结合top.ps等命令进一步检查,即可定位到那些进程导致CPU负载过大 vmstat命令:查看CPU负载. [blackfox@loca ...
- z-index的堆叠规则
原文: https://www.cnblogs.com/starof/p/4424926.html 对于所有定位,最后都不免遇到两个元素试图放在同一位置上的情况.显然,其中一个必须盖住另一个.但,如何 ...
- 利用NATAPP隧道解决微信公众号开发之本地调试难题
一.问题 众所周知,微信公众号开发需要公网的有效域名和80端口,本机当然互联网是访问不了的.那么我们难道去一个公网的服务器去开发吗?那样是不是太土了. 答案当然是,NO 当然我们在做微信支付的时候,有 ...
- libsvm使用说明
http://www.hankcs.com/ml/libsvm-usage.html libsvm使用说明 码农场 > 机器学习 2016-02-18 阅读(345) 评论(0) 目录 l ...
- 通读cheerio API
所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio ...
- Jquery选择器之父节点的子节点
今天review代码,发现有哥们这么写 var span = $($("span"),$("#main")); 我百思不得其解,$(a,b)又好像在哪里见过,后 ...