Чем открыть файл mbtiles

Обновлено: 03.07.2024

MBTiles — относительно новый формат хранения тайлов в БД SQLite. Ниже приведён перевод официальной спецификации формата MBTiles 1.2.

Содержание

MBTiles - формат хранения тайлов в SQLite базе данных для непосредственного использования и передачи.

MBTiles файлы, известные как 'тайлсеты', должны придерживаться данной спецификации для совместимости со всеми устройствами.

Они должны использовать только базовые функции SQLite. Запрещено использовать расширения.

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

База данных должна иметь таблицу или представление под названием metadata.

Данная таблица должна иметь две текстовые колонки под названием name и value.

Вот пример SQL запроса для создания данной таблицы:

Таблица metadata используется для хранения настроек. Обязательно наличие пяти записей:

name: Название тайлсета на английском языке (только латиница)

type: overlay или baselayer

version: Версия тайлсета (целочисленное значение)

description: Описание слоя хранящегося в тайлсете

format: Формат, в котором хранятся тайлы png или jpg

Дополнительные записи, не являющиеся обязательными, которые могут повысить производительность:

bounds: Границы зоны карт. Границы должны определить площадь покрытую тайлами при любом уровне масштабирования.

Границы следует задавать в формате 'WGS:84' - широта и долгота

Границы задаются в формате OpenLayers Bounds (лево, низ, право, верх).

К примеру для всей планеты Земля границы будут выглядеть вот так: -180.0,-85,180,85.


attribution: Строка свойств (описание для разработчиков) написанное на английском языке (с использованием HTML) в которой указанны источники данных и стили карты.

Некоторые дополнительные ключи (записи):

База данных должна содержать таблицу tiles

В данной таблице содержаться следующие столбцы: zoom_level, tile_column, tile_row, tile_data.

Пример SQL запроса для создания таблицы tiles:

Данная таблица содержит собственно тайлы и значения необходимые для их поиска

zoom_level, tile_column, tile_row колонки придерживаются следующих спецификаций

Колонка tile_data blob содержит бинарные данные изображения тайла.

Поддерживаются следующие форматы хранения тайлов:

Таблица может иметь имя grids или grid_table.

Таблица grids должна иметь 4 колонки zoom_level, tile_column, tile_row, grid.

Пример SQL запроса для создания таблицы grids:

Таблица grid_data должна иметь 5 колонок zoom_level, tile_column, tile_row, key_name, key_json.

Пример SQL запроса для создания таблицы grid_data:

Таблица grids должна содержать UTFGrid данные, со сжатием gzip.

Таблица grid_data содержит данные для отображения значений и значения в формате объектов JSON


Продолжаю обзор картографической дизайн студии TileMill.

  • Создание легенды
  • Интерактивность
  • MBTiles подробнее
Легенда

Как я и обещал, сегодня я покажу как можно расширить область применения TileMill с помощью создания легенды и использования интерактивности.

Начнём с создания легенды для карты. Для этого, откройте настройки проекта и перейдите во вкладку «Legend».


Легенда должна содержать HTML код. Также вы можете использовать CSS (если вы хотите совместимость с iPad) или полагаться на внешние CSS предоставляемые веб-приложениями.

Легенда может включать в себя изображения, например, пиктограммы соответствующие маркерам на карте. Вы можете также использовать символы юникода, такие как геометрические фигуры или символы box-drawing наряду с собственными цветами и CSS для создания линий, фигур и точек.

Вот пример простой легенды:


Интерактивность

Релиз TileMill 0.2.0 примечателен новой возможностью — поддержкой интерактивных карт. Интерактивность позволяет извлечь данные из атрибутивной таблицы и отобразить их на карте с помощью подсказок или всплывающих окон.

TileMill использует специальные «сетки» для описания взаимодействия данных в невидимых JSON тайлах. Javascript и HTML — это всё что необходимо для того, чтобы обеспечить интерактивность на карте, таким образом, этот метод на 100% совместим со стандартами W3C. Используя эту технологию, появляется возможность отображения тысяч интерактивных элементов на карте, без использования Flash и не беспокоясь о падении скорости приложения.

Итак, чтобы добавить интерактивность, откройте настройки проекта и выберите вкладку «Interactivity».

  1. Выберите слой, на котором вы хотите поддерживать интерактивность
  2. Выберите имя поля атрибутивной таблицы, которое должно быть уникально для всех слоёв
  3. Укажите формат для вывода текста. Вы можете использовать HTML, CSS и набор токенов (см. следующий пункт). По умолчанию, тизер выводит подсказку при наведении курсора, а полный формат будет выведен при щелчке на активном элементе
  4. Кроме того, вы можете использовать токены, которые будут заменены на данные их атрибутивной таблицы


Интерактивность можно экспортировать в формат MBTiles, который можно использовать на тайловом сервере TileStream и SaaS платформе от разработчиков студии — TileStream Hosting.

MBTiles


MBtiles — это спецификация для хранения нарезанных на тайлы карт в СУБД SQLite с возможностью мгновенной отдачи. Подобный формат данных позволяет переносить тысячи, сотни тысяч и даже миллионы тайлов в одном файле.

Скорость отдачи MBTiles выше чем скорость отдачи миллионов отдельных тайлов, при загрузке на USB, мобильные устройства, или при передаче по сети. Разница, в скорости, между доступом к базе данных или файловой системе, при использовании MBTiles — незначительна.

Так как MBTiles используют встраиваемую СУБД SQLite, то они могут использоватся без соединения с Интернетом.

Тайлы хранятся как BLOB (Binary Large OBjects — формат хранения больших обьемов двоичных данных), следовательно, могут быть использованы в большинстве SQLite клиентах.

Пример

Скачайте набор тайлов Haiti Terrain Grey. Затем, откройте файл в SQLite клиенте:

Выполните следующее SQL выражение:

Вы получите все тайлы с уровнем представления равным пяти.


Где . — представление PNG изображения в BLOB.

Сжатие MBTiles

Команда разработчиков хорошо потрудилась над сжатием MBTiles. Они обнаружили, что можно уменьшить размер файла до 60% сохраняя обратную совместимость.


Принцип сжатия прост — таблица 'tiles' заменяется на представление с таким же именем, которое возвращает те же результаты.

Этот способ — упрощённая версия алгоритма сжатия скользящего окна (этот алгоритм лежит в основе zip, 7zip и многих других популярных форматов). В результате получается файл, заметно меньшего размера. Особенно хорошо это заметно для таких наборов векторных данных как World Light, с большим количеством уровней представления.


Заключение

На сегодня это всё, спасибо за внимание. В следующем топике я рассмотрю использование PostGIS в TileMill и использование MBTiles на практике, с помощью тайлового сервера TileStream и разных картографических библиотек.

В темах про использование электронных или бумажных карт и насколько надежен GPS уже сломано немало копий, поэтому сегодня в продолжении этих тем посмотрим на небо, в смысле на спутниковые снимки земли.


Несмотря на наличие большого количество различных электронных навигационных дивайсов на борту яхты, OpenCPN стал уже общепринятым софтом на круизных яхтах не прибрежного плавания. Хотя и не все используют его как основной навигационный картплоттер, но многие устанавливают эту программу на компьютер для планирования и изучения маршрута. Это программа с открытым кодом и создана яхтсменами программистами, а не офисными работниками. Последние годы программа приобрела много новых плагинов и возможностей, и это все бесплатно и просто в установке и использовании, есть версии для Windows, Mac, Linux и Android.


Примерно после 2005 года, яхтсмены начали интересоваться спутниковыми изображениями от Google Earth и пробовать их использовать в прикладных навигационных целях.

Все электронные карты базируются на оригинальных бумажных картах, конечно современные промеры глубин делаются сразу в цифровой форме, но все это в дополнение к старым промерам, который делались много лет назад и не всегда соответствуют реальности. Есть районы вообще мало обследованные и промеренные только по основным судоходным путям или в районе портов. Недостоверность промеров может быть особенно актуальной в активных сейсмических районах.


Спутниковые снимки дают дополнительную информацию для лучшего понимания навигационной обстановки в конкретном месте, особенно это полезно в различных мало посещаемых местах, куда как раз и любят забираться яхтсмены-дальнобойщики, это конечно не относится к чартерным яхтсменам выходного дня на Средиземном море, где качество промеров и карт достаточно высокое.

В 2010 году яхтсмен и программист Paul Higgins сделал приложение GE2KAP, которая экспортировал спутниковые изображение Google Earth в формат .kap, который используется в морских картах.

Снимки накладывались по координатам на морские электронные карты, но этот формат имеет и некоторые недостатки:

- копировалось только изображение которое было на экране

- нельзя захватить большой участок с сохранением качества

- требовало установки дополнительной программы для работы приложения

Новый формат спутниковый изображение Mbtiles позволяет избежать всех этих недостатков. Обновленная программа от Paul Higgins называется SAT2CHART, но она по прежнему требует дополнительного софта и работает только со старой версией Google Earth 7.1.2.2041.

Последняя версия OpenCPN 5.0 в комбинации с русской программой SasPlanet полностью решает задачу получения спутниковых снимков для навигации.

Отличной возможностью SasPlanet является возможность выбора множества вариантов карт и спутниковых снимков из разных источников, разные районы имеют разное качество снимков от разных провайдеров (Google, Bingo, Yandex, ERSI и т.д.). Также есть доступ к картам Navionics, можно скачать изображение карты на необходимый район плавания в любом масштабе, это очень удобно в комбинации со спутниковыми снимками.

К основной карте можно добавить слои (Layers) например Hybrid (Google) и Navionics, будет видна морская карта и береговые объекты с названиями.


Сначала надо установить последнюю версию OpenCPN 5.0 на свой компьютер (Linux, Windows, Mac), потом можно добавлять различные плагины по необходимости.


1) Загружаем и распаковываем файлы программы SasPlanet, причем программа не устанавливается, а просто загружается в папку на компьютере, запуск через файл .exe, можно сделать ярлык на рабочем столе. Можно переключать языки интерфейса в меню (Settings-Language)

2) В меню (View-Toolbars) включаем галочки на Main, Zoom, Sources

4) Выбираем базовую карту, например Satellite (Google Maps)

5) Смотрим какой масштаб изображения вам подходит для загрузки, обычно 14, 16 и 18, от этого зависит объем загружаемого файла. Для навигации можно более мелкий масштаб, а для конкретного места, например якорной стоянки, можно выбрать масштаб крупнее.

6) В левом крайнем меню (Operations-Selection manager) выбираем как выделять участок изображения и выделяем нужный участок изображения

8) Отмечаем галочкой (Split selection to parts) и устанавливаем максимальное число, это будет зависеть от выбранных масштабов

9) Нажимаем ОК и загружаем изображения в память программы SasPlanet, теперь вы можете отключиться от интернета, просматривать выбранные изображения и экспортировать в формате Mbtiles для дальнейшего использования в навигационной программе OpenCPN.

10) Через меню (View-Cache tiles maps) выбрать масштаб и посмотреть загруженное, на карте светлым будет показано какой участок загружен для каждого масштаба изображения.

11) Открыть загруженный участок через меню (Selection-Last selection), в открывшемся окне, открыть вкладку (Export), выбрать формат экспорта файла Mbtiles 1.2, выбрать папку и название файла, в который будут сохраняться изображения, обычно это делается там же где хранятся карты для OpenCPN. Выбрать масштаб, такой же как при выборе района загрузки и нажать (ОК)

12) Открыть OpenCPN, в меню (Настройки-карты) добавить каталог с загруженными изображениями, обновить базу данных (галочка внизу).


Изображение будет показано на карте красными прямоугольником, при увеличении масштаба появится изображение. Внизу экрана клавиши, которые переключают различные карты, можно поочередно смотреть разные карты для одного района. Например планирование маршрута по CM-93, а пролив, якорная стоянку или порт можно смотреть загруженные Navionics и спутниковые изображения.


Датчик GPS может быть подключен к SasPlanet, но там скорость указывается в км/час и нет навигационных возможностей OpenCPN. Сенсор GPS первоначально подключается с некоторой задержкой, может достигать 5-10 минут в зависимости от спутников, подключение и статус можно смотреть в меню (GPS)

Пожалуй единственным недостатком файлом изображения Mbtiles является невозможность изменения их прозрачности при накладке на другие карты, но адепты OpenCPN уже работают над этим и возможно этот вопрос решится в ближайшее время. Как альтернативу можно разбить экран на два поля и в одном установить например Navionics, а в другом спутниковый снимок, причем отметка судна и прокладка курса будет вестись одновременно на обоих экранах.


Для корректной работы двух окон, надо сделать группы карт, например она группа CM-93, вторая группа Mbtiles(Navionics) и третья группа Mbtiles(Goggle satellite).

Как дополнение к стандартным средствам навигации, это полезная опция, особенно в незнакомых и плохо промеренных районах плавания. Существуют уже подборки сохраненных снимков различных районов, которые уже были сделаны пользователями программы.

MapTiler - как закачать свои карты в iPhone

Справедливости ради стоит отметить, что многие популярные навигационные приложения для iOS, например, такие как Яндек.Карты также умеют загружать офлайновые версии карт городов. Но в случае с MapTiler GPS MBTiles пользователи могут сохранить в памяти устройства свою собственную карту. Это может быть хоть карта средиземья из книги Властелин колец.

При этом навигация будет осуществляться с помощью GPS модуля. Одним из таких приложений является MapTiler GPS MBTiles. В этой статье краткая инструкция как сделать и закачать свои карты в iPhone.

Перед тем, как приступить к загрузке офлайновых карт в MapTiler GPS MBTiles нужно учесть несколько особенностей:

- Сервис поддерживает форматы - TIFF/GeoTIFF, MrSID, ECW, JPEG2000, Erdas HFA, NOAA BSB, JPEG.

- Для создания карты понадобится компьютер на базе Windows или OS X.

- Для переноса карты в память устройства пригодится аккаунт Dropbox.

Для создания офлайновой карты в MapTiler GPS MBTiles нужно:

1. Приобрести само приложение MapTiler GPS MBTiles Viewer в iTunes за 119 рублей.

3. Найти карту в нужном формате. Сделать это можно с помощью любой популярной поисковой системы.

4. Запустить настольную версию приложения MapTiler.

5. В основном окне приложения нажать на пункт Standart Tiles.

MapTiler - как закачать свои карты в iPhone

6. Перетащить файл карты в основное окно приложения MapTiler.

7. В открывшемся окне подтвердить систему координат.

MapTiler - как закачать свои карты в iPhone

8. Далее нужно привязать изображение к координатам на карте. Сделать это можно несколькими способами.

Одним из самых простых можно считать Assign location visually.

MapTiler - как закачать свои карты в iPhone

При выборе этого пункта нужно найти и отметить на изображении и на онлайн-картах одинаковые точки. Например, крупные достопримечательности, дорожные развязки и т.д. Для привязки достаточно трех точек.

MapTiler - как закачать свои карты в iPhone

9. После добавления трех точек нужно нажать на кнопку Save. При необходимости координаты можно изменить, нажав на пункт Change.

10. Нажать на клавишу Continue.

MapTiler - как закачать свои карты в iPhone

11. В новом окне выбрать пункт MBTiles и нажать на клавишу Render.

MapTiler - как закачать свои карты в iPhone

12. Ввести название карты и выбрать директорию, в которую будет сохранен готовый файл.

13. Дождаться пока процесс подготовки файла завершится.

14. В новом окне выбрать пункт Send to mobile.

MapTiler - как закачать свои карты в iPhone

15. В новом окне ввести данных учетной записи Dropbox и дождаться завершения загрузки готовой карты в облако.

16. На мобильном устройстве запустить приложение MapTiler.

MapTiler - как закачать свои карты в iPhone
MapTiler - как закачать свои карты в iPhone

17. Открыть дополнительное меню и перейти в раздел настроек.

18. Нажать на пункт Link Dropbox.

MapTiler - как закачать свои карты в iPhone
MapTiler - как закачать свои карты в iPhone

19. Ввести данные учетной записи Dropbox и разрешить приложению MapTiler получить доступ к папке Приложения – MapTiler.

20. После этого в левой колонке появится новая карта. Так можно закачать свои карты в iPhone и начинать ими использовать.

Стоит отметить, что у MapTiler есть несколько разных подписок. В зависимости от выбранного «пакета» пользователи получают доступ к разным функциональным возможностям. К примеру, в бесплатной версии действуют ограничения на максимальный размер карты (10 на 10 тысяч пикселей), а также искусственно ограничивается скорость рендеринга карты. При необходимости пользователи могут снять все ограничения. Однако нужно это далеко не всем, чтобы закачать свои карты в iPhone достаточно и бесплатной версии.

Читайте также: