Tag Archives: engineering

Інформація про хід роботи над векторними тайлами від Engineering Working Group

Інженерна робоча група Фундації OpenStreetMap представляє оновлення про роботу над створенням векторних тайлів для openstreetmap.org. Читайте далі про те, чому ця робота важлива, що вже зроблено і як враховуються відгуки спільноти, а також технічні деталі для тих, хто хоче знати більше.

Передісторія

Наразі на сайті openstreetmap.org представлені растрові тайли, тобто квадратні зображення, що складаються з пікселів — подумайте про завантажене зображення як частину мапи. Але вже розпочато роботу над створенням векторних тайлів для сайту, які допоможуть покращити зовнішній вигляд мапи та її роботу. Ви можете прочитати більше про передісторію проєкту тут.

Векторні тайли представляють мапу у вигляді векторів: точок, ліній і полігонів. Вони зберігають географічні дані (як і дані OpenStreetMap) у форматі, що дозволяє динамічно змінювати стиль та мати інтерактивність. Для користувачів векторні тайли означатимуть новий, сучасний стиль мапи з плавним масштабуванням на openstreetmap.org, мапу можна буде швидше оновлювати при зміні даних, і вона буде краще працювати для користувачів.

Забігаючи наперед, найцікавіше те, що цей проєкт використання векторних тайлів полегшить роботу волонтерів та користувачів: 3D мапи, більш ефективне змішування даних, зіставлення та інтеграція інших наборів даних, тематичні стилі, багатомовні мапи, різні подання для адміністративних кордонів, інтерактивні точки інтересу, більш доступні мапи для користувачів з вадами зору і, звичайно, багато інших ідей, до яких ще ніхто не додумався. Ви можете пригадати, що багато з цих ідей вже давно цікавлять людей з OSM-спільноти.

План

Метою проекту vector tiles є створення векторних тайлів, які можуть працювати для openstreetmap.org — тобто всесвітнього, складного сайту базових мап, який користується великим попитом у користувачів і служб по всьому світу, де дані, що лежать в основі мапи, постійно змінюються.

Або, кажучи технічною мовою, створити налаштування для всесвітньої складної базової мапи з високим навантаженням, яка потребує щохвилинних оновлень.

Пол Норман керує проєктом vector tiles.

Він працює над доповненням свого проекту Tilekiln, який генерує векторні тайли з бази даних PostgreSQL (як OpenStreetMap), використанням схеми Shortbread, яка є форматом даних для іменування шарів та властивостей у векторних тайлах, та вдосконаленням Themepark, який дозволяє додавати дані OSM до бази даних Postgres.

Робота розбита на три етапи: 

1. Перший раунд вдосконалення Tilekiln та покращення Shortbread Themepark

2. Покращення паралелізму

3. Переведення Shortbread у стан промислового використання

Перші два кроки майже завершено. Tilekiln тепер генерує тайли паралельно, що робить практичним створення тайлів для всього світу. Наступним кроком буде початок розгортання на апаратному забезпеченні OSMF для підготовки до промислового використання.  

Технічні деталі кроку 1

Для тих, кого цікавлять технічні деталі того, над чим ми працюємо, є пʼять основних компонентів першого кроку, описаних вище.

        1.        Автоматизоване пакування Tilekiln

        2.        Публікація метрики Tilekiln за допомогою експортера Prometheus

        3.        Рецензування Themepark Shortbread

        4.        Демонстраційний сервер, що працює з щохвилинним оновленням тайлів Shortbread, рендеринг тайлів на вимогу

        5.        Демонстрація роботи спільноті

Пункти 1 і 2 завершені і не потребують подальшого обговорення. Щодо пункту 3, Пол виявив, що реалізація osm2pgsql Themepark Shortbread потребувала більше роботи, ніж передбачалося, оскільки їй бракувало шару і вона мала деякі проблеми.  

Пункти 4 і 5 завершено. Демо-сервер Пола працює з щохвилинними оновленнями, а вимоги до апаратного забезпечення виявилися скромнішими, ніж очікувалося.  

Спільнота також надає корисні відгуки, наприклад, на допис Пола на форумі спільноти OSM.

Спільнота надала багато пропозицій, деякі з яких вже були враховані. Решта питань, що залишилися в рамках проєкту, є наступними: криві лінії показуються як зубчасті, а векторні тайли є занадто великими.

Проблема зубчастих ліній повʼязана з тим, як плавні криві представлені у векторних тайлах. Цю проблему в основному вирішено, але очікується, що подібні проблеми виникатимуть у майбутньому. Було встановлено цільовий масштаб, еквівалентний мінімальному масштабу стандартного шару тайла. Збільшення до більш загального масштабу можливе, але при цьому можуть почати зʼявлятися артефакти.

Розмір векторних тайлів і надалі залишатиметься проблемою, яка потребує постійної роботи, але поточні тайли є насправді великими. З часу проведення цієї частини тестування було внесено деякі зміни, які зменшили розмір вдвічі. Оптимізація розміру тайлів залишатиметься проблемою, яка потребує постійної роботи, оскільки розмір тайлів є найбільшим фактором, що впливає на зручність користування.

Створені тайли придатні для використання, але ще багато роботи потрібно виконати. Тепер, коли робота над паралелізмом завершена, можна генерувати великі набори тайлів для тестування, тому Пол повернеться до роботи над визначеннями тайлів, щоб покращити їх розмір і виправити деякі проблеми, що залишилися, але поточні тайли  можна використовувати.

Інформація про інструменти, що використовуються

Ось деяка інформація про різні інструменти, використані для цього проєкту.

Tilekiln — програмне забезпечення, написане Полом Норманом для генерації векторних тайлів з бази даних PostgreSQL. Альтернативою є martin (або, можливо, t_rex). Tilekiln знаходиться на стадії розробки, хоча і використовує багато стандартних функцій PostgreSQL для генерації даних векторних тайлів. Більшість мап на основі OSM (включно з osm-carto на osm.org) генеруються на основі запитів SQL з бази даних PostgreSQL. Tilekiln генерує векторні тайли з подібних запитів. Tilekiln є новою програмою.

Themepark є частиною набору інструментів osm2pgsql, що дозволяє додавати дані OSM до Postgres і ділитися цими даними з іншими проєктами. Багато стилів мап OSM на основі PostgreSQL (наприклад, osm-carto) використовують osm2pgsql  

osm2pgsql існує в OSM вже більше 15 років і використовується в багатьох місцях. Хоча Пол долучився до написання коду, він не є основним розробником. За останні кілька років osm2pgsql став більш досконалим і кращим. Частково це повʼязано з попередньою обробкою даних, і Themepark — це спроба полегшити ці кроки попередньої обробки.

Shortbread — це “схема векторних тайлів”, створена Geofabrik. Це формат даних для іменування шарів та властивостей у векторних тайлах.

У цьому дописі містяться публікації Адама Хойла, Мікеля Марона, Аманди МакКенн, Пола Нормана та Ендрю Вайзмена

Фундація OpenStreetMap — це неприбуткова організація, створена для підтримки проєкту OpenStreetMap. Вона спрямовує свою діяльність на заохочення зростання, розвитку та розповсюдження вільних геопросторових даних для використання та обміну. Фундація OpenStreetMap володіє та підтримує інфраструктуру проєкту OpenStreetMap. Вона фінансово підтримується членськими внесками та пожертвами, також вона організовує щорічну міжнародну конференцію State of the Map. Наші робочі групи, що працюють на волонтерських засадах, та невеликий основний персонал працюють над підтримкою проєкту OpenStreetMap. Приєднуйтесь до Фундації OpenStreetMap всього за 15 фунтів стерлінгів на рік або безкоштовно, якщо ви активний учасник OpenStreetMap.