Спецификация MBTiles (перевод): различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
.mbtiles - относительно новый формат хранения тайлов в БД sqlite.
{{Статья|Опубликована|mbtiles-spec}}
Ниже перевод официальной спецификации формата https://github.com/mapbox/mbtiles-spec/blob/master/1.2/spec.md


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: Данна спецификация опираеться на UTFGrid 1.2 (https://github.com/mapbox/utfgrid-spec) для обеспечения интерактивности.
* '''Взаимодействие''': 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