Для начала скачайти файл карт региона, который вас интересует, это может быть какой-то конкретный регион, если мощности ващего железа ограничены, или вы действуете в определенном регионе. Так же можно скачать карту все России, если есть такая потребность:
docker volume create openstreetmap-data
docker volume create openstreetmap-rendered-tiles
В случае использования отдельного тома для размещения докер-файлов необходимо в файле /lib/systemd/system/docker.service задать новый путь:
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
ExecStart=/usr/bin/dockerd --data-root /new_location/ -H fd:// $DOCKER_OPTS
Перезапустить демон докера. В случае необходимости перенести данные из /var/lib/docker/ в новую локацию
Для всей России рекомендуем использовать:
docker run \
-v <Абсолютный путь до вашего файла карт>:/data/region.osm.pbf \
-v osm-data:/data/database/ \
overv/openstreetmap-tile-server \
import
docker run -p 8080:80 -v osm-data:/data/database/ -v osm-tiles:/data/tiles/ -e ALLOW_CORS=enabled -e THREADS=16 -e "OSM2PGSQL_EXTRA_ARGS=-C 4096" -e AUTOVACUUM=off -d overv/openstreetmap-tile-server run
Производительность сервера зависит от количества нитей (THREADS) и кэша для рендера (OSM2PGSQL_EXTRA_ARGS). Текущие настройки исходят из предположения 2 нити на vCPU и 50% кэша от RAM. Но, эти параметры могут иметь сильную зависимость от скорости дисков.
При первом запуске потребуется довольно много времени, чтобы отрендерить большие тайлы.
Карта доступна по адресу: <ip-адрес сервера куда производилась установка>:8080
В случае успешного выполнения инструкции по установке сервера картографии, выполните его подключение к платформе. Для этого в файле /etc/nginx/sites-enabled/semona.conf nginx сервера модуля proxy необходимо выполнить следующие изменения:
location /tiles {
if (!-f $request_filename) {
rewrite ^(\/tiles\/)(.*)_(.*) http://<ip-адрес сервера куда производилась установка>:8080/tile/$2/$3 last;
break;
}
}
Если в файле semona.conf уже была секция location /tiles , ее следует изменить на описанную выше.
Секциейif {}
поддерживается обратная совместимость с решением, когда нет сервера картографии, но есть файлы. В этом случае файлы с tile-картами загрузятся с диска в уникальном формате (_). Если есть сервер картографии, то рекомендуется убрать секцию if.
В инструкции выше приведен пример развертывания сервера с доступом по порту 8080. Ниже приведен пример кофигурации для сервера картографии с именем osm-server:
location /tiles {
if (!-f $request_filename) {
rewrite ^(\/tiles\/)(.*)_(.*) $scheme://osm-server:8080/tile/$2/$3 last;
break;
}
}