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。

该表必须具有名为namevalue的两列。metadata表典型创建语句如下:

CREATE TABLE metadata (name text, value text);

Content 内容

metadata表用作key/value存储,用于保存一些配置settings

以下五个key是必须的:

  • name: tileset的纯英文名称.
  • typeoverlay(覆盖型)或baselayer(基本图层型).
  • version: tileset的版本,纯数字.
  • description: 描述图层(layer)的文本.
  • format: 瓦片数据的图像文件格式: pngjpg

rowmetadata中是推荐提供的,如有,可以提高性能。

  • bounds: 呈现的地图区域的最大范围。Bounds必须定义所有缩放级别所覆盖的区域。范围boundsWGS:84中经纬度值表示,在OpenLayers Bounds格式表示为-
    左,下,右,上.全球范围为例: -180.0,-85,180,85.

  • attribution:属性字符串,使用纯英文(和HTML)解释地图数据和(或)样式的来源.

  通常的tilesets实现都支持这些附加键。
       基于UTFGrid交互.

Tiles 瓦片

Schema 方案

数据库需要包含名为tiles的表.

该表必须具有zoom_leveltile_columntile_rowtile_data四列。tiles表典型创建语句如下:

CREATE TABLE tiles (zoom_level integer, tile_column integer, tile_row integer, tile_data blob);

Content 内容

tiles用于包含瓦片和用于定位的值。
zoom_leveltile_columntile_row列在其构造中遵循
Tile Map Service规范,但受限于以下形式:

假定是global-mercator (球面墨卡托SphericalMercator)

tile_data blob列包含原始图像二进制数据.

图像文件的格式允许使用以下两种:

    • png
    • jpg

Grids 网格

有关网格和交互元数据本身的实现细节,请参阅UTFGrid规范:MBTiles规范仅涉及存储。

Schema 方案

数据库可以有可选的表gridsgrid_data

grids必须具有zoom_leveltile_columntile_rowgrid四列。grids表典型创建语句如下:

CREATE TABLE grids (zoom_level integer, tile_column integer, tile_row integer, grid blob);

grid_data必须具有zoom_leveltile_columntile_rowkey_namekey_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 keyvalue映射,将value编码为JSON对象。

引文连接:MBTiles 1.2 规范翻译

[转]MBTiles 1.2 规范翻译的更多相关文章

  1. MBTiles 1.2 规范翻译

    MBTiles 1.2 可以参考超图的文档MBTiles扩展 具体实现可以参考浅谈利用SQLite存储离散瓦片的思路和实现方法 mapbox提供了一个简单实现测试代码,github地址在这里https ...

  2. Go语言安全编码规范-翻译(分享转发)

    Go语言安全编码规范-翻译 本文翻译原文由:blood_zer0.Lingfighting完成 如果翻译的有问题:联系我(Lzero2012).匆忙翻译肯定会有很多错误,欢迎大家一起讨论Go语言安全能 ...

  3. BSON 1.0版本规范(翻译)

    BSON 1.0版本规范 本文翻译自 http://bsonspec.org/spec.html BSON是用于存储零个或多个键/值对为一个单一的实体的一个二进制格式.我们称这个实体为文档(Docum ...

  4. JSON-RPC 2.0规范 翻译 中文版

    JSON-RPC 2.0规范 起源日期: 2010-03-26(基于2009-05-24的版本号) 修正: 2013-01-04 作者: JSON-RPC 工作组 <json-rpc@googl ...

  5. Promise/A+规范-翻译

    Promise 表示一个异步操作的最终结果,与之进行交互的方式主要是 then 方法,该方法注册了两个回调函数,用于接收 promise 的终值或本 promise 不能执行的原因. 本规范详细列出了 ...

  6. 3、LwIP协议栈规范翻译——概述

    3.概述 像许多其他TCP/IP实现一样,分层协议设计已经成为设计lwIP实现的指南.每个协议实现为自己的模块,其中几个功能充当每个协议的入口点.尽管协议层是单独实现的,一些层却不全是,正如前面所叙述 ...

  7. 4、 LwIP协议栈规范翻译——流程模型

    4.流程模型 协议实现的流程模型描述了系统被划分为不同的流程的方式.用于实现通信协议的一个流程模型是让每个协议作为一个独立的进程运行.有了这个模型,严格的协议分层被强制执行,并且协议之间的通信点必须严 ...

  8. 5、 LwIP协议栈规范翻译——操作系统仿真层

    为了使lwIP可移植,操作系统特定的函数调用和数据结构不直接在协议的代码中使用.相反,当需要这样的函数调用和数据结构时,直接使用操作系统仿真层. 操作系统仿真层为操作系统服务提供统一的接口,如定时器, ...

  9. LwIP协议栈规范翻译——摘要目录

    摘要 LwIP是一种TCP/IP协议栈的实现.LwIP协议栈专注于减少内存的使用和代码的大小,使LwIP适用于嵌入式系统中在有限的资源下能够使用小型的客户机.为了减少处理和内存的需求,LwIP使用裁剪 ...

随机推荐

  1. xshell 中解决中文乱码问题

    点击菜单栏 文件 -> 属性 在属性对话框内点击终端, 选择 编码为 UTF-8 即可.

  2. 中南月赛 B题 Scoop water

    Problem B: Scoop water Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 261  Solved: 57[Submit][Status ...

  3. POJ 2524(并查集)

    这道题多了一个检查是否包含所有元素 可以设一个cnt表示集合里的数量,再与外面比较 #include <cstdio> #include <iostream> #include ...

  4. 鸟哥linux私房菜学习笔记 第二章知识点

    2.1 linux一切皆文件 2.2 磁盘分区 磁盘即文件 2.2.1 磁盘连接的方式与设备文件名的关系 模糊 1.正常的实体机器大概使用的都是 /dev/sd[a-] 的磁盘文件名,至于虚拟机环境下 ...

  5. SqlServer之一些小问题

    如何用变量代替字段名? 将语句赋给一个varchar 变量,下列语句等价于(假设传进去的@id=’name‘):'select  name from 表名' 如果直接执行这个语句,是没用的.@id不会 ...

  6. JQuery和html+css实现带小圆点和左右按钮的轮播图

    是的!你没看错!还是轮播图.这次的JQuery的哟!! CSS代码: /*轮播图 左右按钮 小白点*/ #second_div{ margin-top: 160px; } .img_box{ over ...

  7. HTTP状态码和HTTP请求头

    HTTP报文是在Web服务器和浏览器之间进行交换的文本数据,一种是从浏览器发出的请求,一种是服务器发出的响应. 请求报文的第一行包括:1.请求方法 2.当前使用的HTTP协议版本 3.请求地址 GET ...

  8. Non-resolvable parent POM for com.*******

    场景: 同事新打了一个jar包到私服里面,自己删除了本地对应的中央仓库的依赖包,再次重新下载.  于是我又打开了一个idea的窗口重新引入这个项目,然后重新下载依赖的服务. 结果就一直报这个问题... ...

  9. Django基础之form操作

    Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Wi ...

  10. Django 代码初体验

    其实Django中的代码逻辑就是和我们以前所学的一些项目差不多 就是 解耦.解耦.解耦 创建过后的Django文件 其中的day68是你的 项目的名字的相同的一个自动生成的文件里面都是放置配置文件类似 ...