Перейти до змісту

Основи⚓︎

Завдання⚓︎

Ваш поточний постачальник мап надає вам дві речі:

  • Набір тайлів (квадратних шматочків із зображенням), які складуються в мапу
  • JavaScript API, або подібну бібліотеку для мобільних застосунків, щоб переглядати їх

Для переходу на OpenStreetMap, треба замінити їх обидві.

Тайли⚓︎

Tiles Тайли мапи, це картинки (зазвичай) розміром 256 x 256 пікселів кожна, які створені (“згенеровані”) з бази даних мапи.

Якщо ви вже використовуєте Карти Google, ви, скоріш за все, отримуєте тайли мап Google з сайту google.com. Оскільки Фонд OpenStreetMap – це неприбуткова організація з обмеженими ресурсами, ви не можете просто замінити тайли, які ви використовували, на тайли з openstreetmap.org (див. Правила використання тайлів). Натомість ви можете:

  • Створити ваші власні тайли, завантаживши вільні дані з бази OSM та виконавши процес генерації тайлів (рендерінг);

  • Скористатись послугами інших (хтось бере за це гроші, а хтось – ні)

База даних OSM називається planet.osm. Повний набір даних та регулярні оновлення доступні на planet.openstreetmap.org.

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

Растрові чи векторні тайли⚓︎

Використання растрових та векторних тайлів — це два різні підходи до подання та роботи з картографічними даними. Кожен має свої переваги та сфери застосування. Дослідімо відмінності між растровими та векторними тайлами, щоб зрозуміти їхні переваги та обмеження.

Растрові тайли

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

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

Векторні тайли

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

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

Варіанти застосування⚓︎

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

Растрові тайли

  • Естетично деталізовані мапи, такі як топографічні мапи або супутникові зображення.
  • Статичні мапи, які не вимагають інтерактивності в реальному часі або частого оновлення.
  • Випадки, коли дані мапи є відносно стабільними та не потребують частих модифікацій або змін стилю.

Векторні тайли

  • Динамічні мапи, які вимагають налаштування та інтерактивності в режимі реального часу, як-от стиль або фільтрація, в залежності від дій користувача.
  • Мобільні застосунки або території з обмеженою пропускною здатністю або з обмеженнями для зберігання даних.
  • Мапи з даними, які часто змінюються, де оновлення мають показуватись в режимі реального часу.

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

API/бібліотека⚓︎

В OSM не існує єдиної канонічної бібліотеки, ви можете обрати ту, що найбільше відповідає вашим потребам. Двома найпопулярнішими бібліотеками JavaScript для показу тайлів OSM є:

  • OpenLayers – потужна та перевірена часом

  • Leaflet – легка та проста в освоєнні

Також наявні API й для мобільних платформ, наприклад Route-Me (iOS) та osmdroid (Android).

Ліцензійні умови⚓︎

На відміну від даних комерційних постачальників, OpenStreetMap – це ‘відкриті дані’. Дані мапи доступні для вас вільно (безплатно), ви можете копіювати їх та змінювати. Дані OSM розповсюджуються на умовах Ліцензії ODbL (Open Database Licence).

Використовуючи дані OpenStreetMap ви зобовʼязуєтесь:

  • Вказувати авторство (атрибуція). Ви повинні посилатись на OpenStreetMap, тим самим чином, як це можна було б очікувати, якби ви користувалися послугами комерційного постачальника. Дивіться Настанови OSM про зазначення авторства.

  • Розповсюджувати похідні дані на подібних умовах (Share-Alike). Якщо ви використовуєте будь-яку модифіковану версію даних OpenStreetMap, або працюєте з ними, ви також повинні надавати ці адаптовані дані на умовах ODbL.