Skip to content

Commit e8b2ae8

Browse files
authored
ubuntu-24-04
1 parent 351b77d commit e8b2ae8

7 files changed

+969
-1
lines changed

docs/assets/serving-tiles/index.md

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
layout: docs
3+
title: Робимо власні тайли
4+
lang: uk
5+
---
6+
7+
# {{ title }}
8+
9+
Тайли від сторонніх постачальників – це найпростіший спосіб переходу на OpenStreetMap, до того ж він дозволяє точно виміряти ваші витрати. Однак, якщо ви бажаєте мати повний контроль над долею, ви можете створювати та розповсюджувати ваші власні тайли. В цьому розділі йдеться про те, як це зробити.
10+
11+
![сирцеві дані osm](/assets/img/raw-osm-data.png){ data-title="Сирцеві дані OSM" data-description="Сирцеві дані OpenStreetMap, зі стандартним стилем показу даних в JOSM, отримані для редагування через OSM API. https://www.openstreetmap.org/#map=16/18.0253/-63.0485" } | ![тайловий сервер](/assets/img/vector_tiles_pyramid_structure_window.png){ data-title="Піраміда тайлів мапи" data-description="Кожен рівень масштабування розбивається на маленькі шматки, які називаються тайлами. Зазвичай, розмір одного тайлу – 256×256 пікселів." } | ![використання мап](/assets/img/map-usage.png){ 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

Comments
 (0)