Category Archives: Engineering Working Group

Інформація про хід роботи над векторними тайлами від 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.

Нагадування: Просимо надати ваші відгуки на пропозицію що до зміни моделі даних

Дослідження моделі даних

Інженерна робоча група Фундації OpenStreetMap на початку 2022 року замовила дослідження, щодо можливості покращення наявної моделі даних. Йохен Топф [Jochen Topf] представив результати цього дослідження, включаючи рекомендації щодо того, як зробити модель даних OpenStreetMap ефективнішою та доступнішою.

Було зроблено дві ключові пропозиції:

  • введення типу даних «area» для позначення полігонів
  • позбавитись точок без теґів

Консультації зі спільнотою

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

Потенційні переваги

Менше безладу з полігонами

Деякі мапери можуть бути здивовані, почувши, що OSM ще не має типу даних Area. Зрештою, редактор iD має кнопки для додавання точок, ліній та полігонів. Після додавання на мапу ці полігони зазвичай зʼявляються на мапі, як і очікувалося. Вікі OSM має пояснення, чи теґ зазвичай використовується для полігонів, і навіть Overpass Turbo дозволяє використовувати полігони у ваших запитах.

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

Забезпечення доступності обробки даних OSM

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

У майбутньому ми можемо змоделювати лінії у вигляді простого списку координат – залежно від точної реалізації, яку ми отримаємо. Це забезпечить великі переваги в продуктивності, але позбавлення від точок без теґів було б значною зміною.

На перший погляд, поліпшення продуктивності може здатися не особливо захопливим. Але те, наскільки проста робота з нашими даними, безпосередньо впливає на те, наскільки корисним є OpenStreetMap для світу в цілому. Як зазначає Йохен: “Мета полягає в тому, щоб зберегти OSM як той чудовий ресурс, яким можуть користуватися не лише багатомільярдні компанії, але й студенти, які хочуть створити мапу світу на своєму ноутбуку, або активіст зі своїм подарованим вживаним компʼютером”.

Краща історія змін даних OSM

Багато маперів розчаровуються, коли розуміють, як мало речей може показати вкладка історії вебсайту. Існує багато інструментів, таких як OSMCha та Achavi, які пропонують набагато більше, але все одно вимагають певного ступеня майстерності для їх використання.

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

Щохвилинна генерація векторних тайлів

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

  • Одна з них полягає в тому, які елементи повинні входити у векторні тайли для openstreetmap.org
  • Інша – як узгодити щохвилинні оновлення з векторними тайлами для підтримання продуктивності на прийнятному рівні.

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

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

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

Висловіть свою думку про майбутнє

Якісь зміни неминучі. Зростання бази даних OSM випереджає покращення швидкості апаратного забезпечення, а модель на основі ідентифікатора означає, що весь процес не може бути розпаралелельований з повним прискоренням. Йти в ногу зі змінами було легко в минулому, але зараз потребує все нових і нових хитрощів. У майбутньому є момент, коли також буде достатньо спеціалізованого обладнання, щоб йти в ногу з щохвилинними змінами.

Однак існує багато можливих підходів до вирішення цього завдання. Тепер є можливість для спільноти розробників поділитися вашою думкою про подальший шлях.


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