|
| 1 | +--- |
| 2 | +layout: docs |
| 3 | +title: Робимо власні тайли |
| 4 | +lang: uk |
| 5 | +--- |
| 6 | + |
| 7 | +# {{ title }} |
| 8 | + |
| 9 | +Тайли від сторонніх постачальників – це найпростіший спосіб переходу на OpenStreetMap, до того ж він дозволяє точно виміряти ваші витрати. Однак, якщо ви бажаєте мати повний контроль над долею, ви можете створювати та розповсюджувати ваші власні тайли. В цьому розділі йдеться про те, як це зробити. |
| 10 | + |
| 11 | +{ data-title="Сирцеві дані OSM" data-description="Сирцеві дані OpenStreetMap, зі стандартним стилем показу даних в JOSM, отримані для редагування через OSM API. https://www.openstreetmap.org/#map=16/18.0253/-63.0485" } | { data-title="Піраміда тайлів мапи" data-description="Кожен рівень масштабування розбивається на маленькі шматки, які називаються тайлами. Зазвичай, розмір одного тайлу – 256×256 пікселів." } | { data-title="Тайли зібрані в мапу на вашому вебсайті" data-description="Тайли, створені вашим тайловим сервером, потім показуються у вигляді цільної мапи в оглядачі клієнта чи в іншому застосунку." } |
| 12 | +:--:|:--:|:--: |
| 13 | +:simple-openstreetmap: :material-database-import: Сирцеві дані OpenStreetMap | :material-server: :material-checkerboard-plus: Ваш власний тайловий сервер | :fontawesome-solid-users: :octicons-browser-16: Відвідувачі переглядають мапу на вашому вебсайті |
| 14 | + |
| 15 | +## Ви точно цього бажаєте? |
| 16 | + |
| 17 | +І генерація тайлів, і їх розповсюдження вимагають наявності доволі потужного обладнання, особливо, якщо вам треба мати глобальне покриття та регулярні оновлення. |
| 18 | + |
| 19 | +Для розгортання власного тайлового сервера ми радимо використовувати [Ubuntu Linux](https://ubuntu.com/){: target=_blank} або [Debian](https://www.debian.org/releases/){: target=_blank}. |
| 20 | + |
| 21 | +## Варіанти |
| 22 | + |
| 23 | +1. Встановлення на [Debian 12](manually-building-a-tile-server-debian-12.md), [Debian 11](manually-building-a-tile-server-debian-11.md), [Ubuntu 24.04](manually-building-a-tile-server-ubuntu-24-04-lts.md), [Ubuntu 22.04](manually-building-a-tile-server-ubuntu-22-04-lts.md), [Ubuntu 20.04](manually-building-a-tile-server-ubuntu-20-04-lts.md) або на [Ubuntu 18.04](manually-building-a-tile-server-ubuntu-18-04-lts.md). |
| 24 | + |
| 25 | +2. Використання [docker](using-a-docker-container.md). |
| 26 | + |
| 27 | +## Системні вимоги |
| 28 | + |
| 29 | +Обслуговування власних мап це доволі витратне завдання. В залежності від розміру території, яка вам потрібна та очікуваної кількості трафіку, вимоги до обладнання можуть змінюватись в широкому діапазоні. Переважно, вимагатиметься наявність сховища на 10-20 ГБ, 4 ГБ оперативної памʼяті, а також сучасного двоядерного процесора для роботи з мапою середнього міста, або більше ніж 1 ТБ для сховища, 24+ ГБ оперативної памʼяті та не менш ніж чотириядерний процесор для всієї планети. |
| 30 | + |
| 31 | +Ми радимо вам розпочати роботу з невеличких частин даних OpenStreetMap – з міста, району чи області. Це краще ніж витратити тиждень на імпорт всього світу (planet.osm) і потім почати все наново після виявлення помилки в налаштуваннях! Ви можете завантажити дані частинами з: |
| 32 | + |
| 33 | +* [Geofabrik](https://download.geofabrik.de/){: target=_blank} (країни та регіони) |
| 34 | +* [Protomaps Extracts](https://protomaps.com/extracts){: target=_blank} (щохвилинні оновлення міст та невеличких країн) |
| 35 | +* [download.openstreetmap.fr](https://download.openstreetmap.fr/){: target=_blank} |
| 36 | + |
| 37 | +## Інструментарій |
| 38 | + |
| 39 | +Ми використовуємо різні інструменти для створення та обслуговування тайлів. |
| 40 | + |
| 41 | +**Apache** – сервер, який обслуговує звернення від ваших вебоглядачів та передає їх сервісу **mod_tile**. Крім цього вебсервер Apache може використовуватись для обслуговування статичного вебконтенту, такого як HTML, JavaScript та CSS для вашої сторінки з мапою. |
| 42 | + |
| 43 | +Після надходження від користувача запиту Apache направляє запит до mod_tile для подальшої обробки. Mod_tile перевіряє, чи тайл вже створено і він готовий до використання або він вимагає оновлення через його відсутність в кеші. Якщо тайл доступний і не потребує створення, він негайно надсилається клієнту. У випадку потреби у його створені, тайл додається в “чергу генерації”, і коли настає його черга, процес генерації тайлів (рендер) створює його та надсилає клієнту. |
| 44 | + |
| 45 | +Для створення тайлів ми використовуємо інструмент з назвою **Mapnik**. Він бере запити з черги, як тільки вони там зʼявляються, витягує дані із різноманітних джерел, відповідно до інформації про стиль, та генерує тайли. Тайл надсилається до клієнта, а Mapnik переходить до наступного елемента в черзі. |
| 46 | + |
| 47 | +Для потреб генерації тайлів, дані OpenStreetMap зберігаються в базі даних, яка обслуговується сервером баз даних **PostgreSQL**. Для переміщення даних в базу використовується **osm2pgsql**. Ці два інструменти працюють разом щоб в ефективний спосіб отримувати геопросторові дані OpenStreetMap. Ви можете підтримувати актуальність вашої бази даних PostgreSQL користуючись потоком diff-файлів, які створюються кожні 60 секунд на сервері OpenStreetMap. |
0 commit comments