Спецификация MBTiles (перевод)

Материал из GIS-Lab
Перейти к навигации Перейти к поиску

.mbtiles - относительно новый формат хранения тайлов в БД sqlite. Ниже перевод официальной спецификации формата https://github.com/mapbox/mbtiles-spec/blob/master/1.2/spec.md

MBTiles 1.2

Взаимодействие: HTTP-клиент необходим для обеспечения интерактивности UTFGrid: Данна спецификация опираеться на UTFGrid 1.2 (https://github.com/mapbox/utfgrid-spec) для обеспечения интерактивности.

Введение: MBTiles - формат хранения тайлов в SQLite базе данных для непосредственного использования и передачи. MBTiles файлы, известные как 'тайлсеты', должны придерживаться данной спецификации для совместимости со всеми устройствами.

Спецификации базы данных Тайлсеты представляют из себя валидные базы данных SQLite версии 3.0.0 или выше (http://sqlite.org/formatchng.html). Они должны использовать только базовые функции SQLite. Запрещено использовать расширения.

База данных Примечание: схемы изображены в качестве интерфейсов для удобства понимания спецификации.

Metadata Схема База данных должна иметь таблицу или представление под названием metadata. Данная таблица должна иметь две текстовые колонки под названием name и value. Вот пример SQL запроса для создания данной таблицы:

   CREATE TABLE metadata (name text, value text);

Содержание Таблица metadata используется для хранения настроек. Обязательно наличие пяти записей: name: Название тайлсета на английском языке (только латиница) type: overlay или baselayer version: Версия тайлсета (целочисленное значение) description: Описание слоя хранящегося в тайлсете format: Формат, в котором хранятся тайлы png или jpg

Дополнительные записи, не являющиеся обязательными, которые могут повысить производительность: bounds: Границы зоны карт. Границы должны определить площадь покрытую тайлами при любом уровне масштабирования. Границы следует задавать в формате 'WGS:84' - широта и долгота Границы задаются в формате OpenLayers Bounds (лево, низ, право, верх). К примеру для всей планеты Земля границы будут выглядеть вот так: -180.0,-85,180,85. attribution: Строка свойств (описание для разработчиков) написанное на английском языке (с использованием HTML) в которой указанны источники данных и стили карты.

Некоторые дополнительные ключи (записи): [UTFGrid-based interaction](https://github.com/mapbox/utfgrid-spec).

Tiles Схема База данных должна содержать таблицу tiles В данной таблице содержаться следующие столбцы: zoom_level, tile_column, tile_row, tile_data. Пример SQL запроса для создания таблицы tiles:

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

Содержание

Данная таблица содержит собственно тайлы и значения необходимые для их поиска zoom_level, tile_column, tile_row колонки придерживаются следующих спецификаций [Tile Map Service Specification](http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification) в своей конструкции, но в ограниченной форме:

   Tglobal-mercator (http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification#global-mercator) (aka Spherical Mercator) profile is assumed** NB: не понял суть

Колонка tile_data blob содержит бинарные данные изображения тайла. Поддерживаются следующие форматы хранения тайлов:

  • png
  • jpg

Grids Смотри спецификацию UTFGrid specification(https://github.com/mapbox/utfgrid-spec) для деталей реализации сетки и их метаданных взаимодействий: в MBTiles данная спецификация используется только для хранения. Схема Таблица может иметь имя grids или grid_table. Таблица должна иметь 4 колонки zoom_level, tile_column, tile_row, grid. Пример SQL запроса для создания таблицы grids:

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

Таблица grid_data должна иметь 5 колонок zoom_level, tile_column, tile_row, key_name, key_json. Пример SQL запроса для создания таблицы grid_data:

   CREATE TABLE grid_data (zoom_level integer, tile_column integer, tile_row integer, key_name text, key_json text);

Содержание Таблица grids должна содержать UTFGrid данные, со сжатием gzip. Таблица grid_data содержит данные для отображения значений и значения в формате объектов JSON