Спецификация MBTiles (перевод): различия между версиями
T0pep0 (обсуждение | вклад) (Создание страницы) |
Нет описания правки |
||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Статья|Опубликована|mbtiles-spec}} | |||
MBTiles 1.2 | {{Аннотация|[https://www.mapbox.com/developers/mbtiles/ MBTiles] — относительно новый формат хранения тайлов в БД SQLite. | ||
Ниже приведён перевод [https://github.com/mapbox/mbtiles-spec/blob/master/1.2/spec.md официальной спецификации] формата MBTiles 1.2.}} | |||
Взаимодействие: HTTP-клиент необходим для обеспечения интерактивности | == Подразделы == | ||
UTFGrid: | * '''Взаимодействие''': HTTP-клиент необходим для обеспечения интерактивности | ||
* '''UTFGrid''': Данная спецификация опирается на UTFGrid 1.2 (https://github.com/mapbox/utfgrid-spec) для обеспечения интерактивности. | |||
Введение | == Введение == | ||
MBTiles - формат хранения тайлов в SQLite базе данных для непосредственного использования и передачи. | MBTiles - формат хранения тайлов в SQLite базе данных для непосредственного использования и передачи. | ||
MBTiles файлы, известные как 'тайлсеты', должны придерживаться данной спецификации для совместимости со всеми устройствами. | MBTiles файлы, известные как 'тайлсеты', должны придерживаться данной спецификации для совместимости со всеми устройствами. | ||
Спецификации базы данных | == Спецификации базы данных == | ||
Тайлсеты представляют из себя валидные базы данных SQLite версии 3.0.0 или выше (http://sqlite.org/formatchng.html). | Тайлсеты представляют из себя валидные базы данных SQLite версии 3.0.0 или выше (http://sqlite.org/formatchng.html). | ||
Они должны использовать только базовые функции SQLite. Запрещено использовать расширения. | Они должны использовать только базовые функции SQLite. Запрещено использовать расширения. | ||
База данных | == База данных == | ||
Metadata | ''Примечание: схемы изображены в качестве интерфейсов для удобства понимания спецификации. '' | ||
Схема | |||
=== Metadata === | |||
==== Схема ==== | |||
База данных должна иметь таблицу или представление под названием metadata. | База данных должна иметь таблицу или представление под названием metadata. | ||
Данная таблица должна иметь две текстовые колонки под названием name и value. | Данная таблица должна иметь две текстовые колонки под названием name и value. | ||
Вот пример SQL запроса для создания данной таблицы: | Вот пример SQL запроса для создания данной таблицы: | ||
CREATE TABLE metadata (name text, value text); | CREATE TABLE metadata (name text, value text); | ||
Содержание | |||
==== Содержание ==== | |||
Таблица metadata используется для хранения настроек. Обязательно наличие пяти записей: | Таблица metadata используется для хранения настроек. Обязательно наличие пяти записей: | ||
name: Название тайлсета на английском языке (только латиница) | name: Название тайлсета на английском языке (только латиница) | ||
type: overlay или baselayer | type: overlay или baselayer | ||
version: Версия тайлсета (целочисленное значение) | version: Версия тайлсета (целочисленное значение) | ||
description: Описание слоя хранящегося в тайлсете | description: Описание слоя хранящегося в тайлсете | ||
format: Формат, в котором хранятся тайлы png или jpg | format: Формат, в котором хранятся тайлы png или jpg | ||
Дополнительные записи, не являющиеся обязательными, которые могут повысить производительность: | Дополнительные записи, не являющиеся обязательными, которые могут повысить производительность: | ||
bounds: Границы зоны карт. Границы должны определить площадь покрытую тайлами при любом уровне масштабирования. | bounds: Границы зоны карт. Границы должны определить площадь покрытую тайлами при любом уровне масштабирования. | ||
Границы следует задавать в формате 'WGS:84' - широта и долгота | Границы следует задавать в формате 'WGS:84' - широта и долгота | ||
Границы задаются в формате OpenLayers Bounds (лево, низ, право, верх). | Границы задаются в формате OpenLayers Bounds (лево, низ, право, верх). | ||
К примеру для всей планеты Земля границы будут выглядеть вот так: -180.0,-85,180,85. | |||
attribution: Строка свойств (описание для разработчиков) написанное на английском языке (с использованием HTML) | К примеру для всей планеты Земля границы будут выглядеть вот так: ''-180.0,-85,180,85''. | ||
в которой указанны источники данных и стили карты. | |||
attribution: Строка свойств (описание для разработчиков) написанное на английском языке (с использованием HTML) в которой указанны источники данных и стили карты. | |||
Некоторые дополнительные ключи (записи): | Некоторые дополнительные ключи (записи): | ||
[UTFGrid-based interaction](https://github.com/mapbox/utfgrid-spec). | [UTFGrid-based interaction](https://github.com/mapbox/utfgrid-spec). | ||
Tiles | === Tiles === | ||
Схема | |||
==== Схема ==== | |||
База данных должна содержать таблицу tiles | База данных должна содержать таблицу tiles | ||
В данной таблице содержаться следующие столбцы: zoom_level, tile_column, tile_row, tile_data. | В данной таблице содержаться следующие столбцы: zoom_level, tile_column, tile_row, tile_data. | ||
Пример SQL запроса для создания таблицы tiles: | Пример SQL запроса для создания таблицы tiles: | ||
CREATE TABLE tiles (zoom_level integer, tile_column integer, tile_row integer, tile_data blob); | CREATE TABLE tiles (zoom_level integer, tile_column integer, tile_row integer, tile_data blob); | ||
Содержание | ==== Содержание ==== | ||
Данная таблица содержит собственно тайлы и значения необходимые для их поиска | Данная таблица содержит собственно тайлы и значения необходимые для их поиска | ||
zoom_level, tile_column, tile_row колонки придерживаются следующих спецификаций | zoom_level, tile_column, tile_row колонки придерживаются следующих спецификаций | ||
[Tile Map Service Specification](http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification) в своей конструкции, но в ограниченной форме: | [Tile Map Service Specification](http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification) в своей конструкции, но в ограниченной форме: | ||
Строка 60: | Строка 87: | ||
Колонка tile_data blob содержит бинарные данные изображения тайла. | Колонка tile_data blob содержит бинарные данные изображения тайла. | ||
Поддерживаются следующие форматы хранения тайлов: | Поддерживаются следующие форматы хранения тайлов: | ||
* png | * png | ||
* jpg | * jpg | ||
Grids | === Grids === | ||
Смотри спецификацию UTFGrid specification(https://github.com/mapbox/utfgrid-spec) для деталей реализации сетки и их метаданных взаимодействий: в MBTiles | |||
данная спецификация используется только для хранения. | Смотри спецификацию UTFGrid specification(https://github.com/mapbox/utfgrid-spec) для деталей реализации сетки и их метаданных взаимодействий: в MBTiles данная спецификация используется только для хранения. | ||
Схема | ==== Схема ==== | ||
Таблица может иметь имя grids или grid_table. | Таблица может иметь имя grids или grid_table. | ||
Таблица должна иметь 4 колонки zoom_level, tile_column, tile_row, grid. | |||
Таблица grids должна иметь 4 колонки zoom_level, tile_column, tile_row, grid. | |||
Пример SQL запроса для создания таблицы grids: | Пример SQL запроса для создания таблицы grids: | ||
Строка 75: | Строка 106: | ||
Таблица grid_data должна иметь 5 колонок zoom_level, tile_column, tile_row, key_name, key_json. | Таблица grid_data должна иметь 5 колонок zoom_level, tile_column, tile_row, key_name, key_json. | ||
Пример SQL запроса для создания таблицы grid_data: | Пример SQL запроса для создания таблицы grid_data: | ||
CREATE TABLE grid_data (zoom_level integer, tile_column integer, tile_row integer, key_name text, key_json text); | CREATE TABLE grid_data (zoom_level integer, tile_column integer, tile_row integer, key_name text, key_json text); | ||
Содержание | ==== Содержание ==== | ||
Таблица grids должна содержать UTFGrid данные, со сжатием gzip. | Таблица grids должна содержать UTFGrid данные, со сжатием gzip. | ||
Таблица grid_data содержит данные для отображения значений и значения в формате объектов JSON | Таблица grid_data содержит данные для отображения значений и значения в формате объектов JSON |
Текущая версия от 20:56, 12 июня 2014
по адресу http://gis-lab.info/qa/mbtiles-spec.html
MBTiles — относительно новый формат хранения тайлов в БД SQLite. Ниже приведён перевод официальной спецификации формата 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.
Таблица grids должна иметь 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