Switch2OSM

Керуйте вашими мапами самі

Використання контейнера Docker

Якщо ви тільки бажаєте потестувати або ви використовуєте іншу операційну систему (відмінну від Ubuntu), або ви вже використовуєте Docker для контейнеризації – ви можете спробувати цю інструкцію. Вона базується на інструкції звідси і вже має готовий до використання контейнер.

Docker

Якщо у вас ще не встановлено Docker, ви можете скористатись різноманітними порадами щодо його встановлення, наприклад, одна з них в щоденниках OSM, що посилається на це керівництво.

Дані OpenStreetmap

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

cd ~
wget http://download.geofabrik.de/africa/zambia-latest.osm.pbf

Створіть docker volume для даних :

docker volume create openstreetmap-data

Встановіть контейнер та імпортуйте дані:

time docker run -v /home/renderaccount/zambia-latest.osm.pbf:/data.osm.pbf -v openstreetmap-data:/var/lib/postgresql/10/main overv/openstreetmap-tile-server import

Шлях до файлу даних має бути абсолютним шляхом. В цьому прикладі це домашня тека нашого користувача “renderaccount”.

Як довго це триватиме – залежить від швидкості вашого з’єднання з мережею та розміру ділянки для завантаження. Замбія, яку ми обрали для прикладу, має досить не багато даних.

Зауважте, якщо щось пійде не так, повідомлення про помилки можуть бути трохи загадковими; ви можете побачити “… is a directory” якщо файл з даними не буде знайдений. Команда “time” на початку рядка не є обов’язковою, вона лише повідомить вам як довго тривав процес, щоб ви мали уявлення про це на майбутнє.

Для отримання докладної інформації про те, що на справді відбуватиметься, ознайомтесь з файлом опису контейнера. Ви побачите, що він дуже схожий на інструкцію з “розгортання тайлового сервера вручну”, з незначними змінами, такими як URL для тайлів та використання внутрішнього облікового запису. Ви можете побачити що в середині контейнера використовується Ubuntu 18.04, хоча вам і не треба взаємодіяти з системою безпосередньо.

Після завершення імпорту ви маєте побачити повідомлення подібне до цього:

Osm2pgsql took 568s overall

real    9m34.378s
user    0m0.030s
sys     0m0.060s

Тут повідомляється скільки часу тривав імпорт (в цьому випадку 9 з половиною хвилин).

Для запуску тайлового сервера скористайтесь командою:

docker run -p 80:80 -v openstreetmap-data:/var/lib/postgresql/10/main -d overv/openstreetmap-tile-server run

та перевірте че він працює відкривши посилання:

http://адреса.вашого.сервера/tile/0/0/0.png

Ви маєте побачити мапу світу у вашому оглядачі.

Перегляд тайлів

Для перегляду простої “рухомої мапи” скористаємось файлом “sample_leaflet.html”, який знаходиться в теці “extra” mod_tile’а. Змініть “hot” в URL у файлі на “tile”, і відкрийте його в оглядачі на комп’ютері де встановлено контейнер docker. Якщо це не можливо через відсутність встановленного веб-оглядача, вам доведеться замінити у файлі “127.0.0.1” на IP адресу сервера та скопіювати його в “/var/www/html” на на цьому сервері.

У разі потреби завантаження іншої території, повторіть процес від завантаження даних з допомогою “wget” і далі. Це буде трохи швидше наступного разу, бо статичні дані для стилю вже в наявності і їх не треба завантажувати.