Pull to refresh

Расширенные возможности TileMill

Reading time3 min
Views4K


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

Предыдущие части:
  1. Обзор студии
  2. Введение в TileMill

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

Интересно? Приглашаю под кат.

Легенда

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

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



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

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

Вот пример простой легенды:
Интенсивность землетрясений
<span style='color:#F3E5BE'>■</span> 5 баллов
<span style='color:#EFF1A8'>■</span> 6 баллов
<span style='color:#EFEE8D'>■</span> 7 баллов
<span style='color:#DC8540'>■</span> 8 баллов
<span style='color:#ED4B7D'>■</span> 9 баллов


И результат:



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

Релиз 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 клиенте:
sqlite3 haiti-terrian-grey.mbtiles

Выполните следующее SQL выражение:
SELECT * FROM tiles WHERE zoom_level = 5;

Вы получите все тайлы с уровнем представления равным пяти.
5|8|17|????
5|8|18|????
5|9|17|????
5|9|18|????
5|10|17|????
5|10|18|????


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

Сжатие MBTiles


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



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

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



Заключение


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

Полезные сылки

  1. MBTiles — полная спецификация формата
  2. MBTiles Utils — набор утилит, для сжатия данных
Tags:
Hubs:
+2
Comments2

Articles

Change theme settings