Установка и настройка сервера построения маршрутов (OSRM)

OSRM Server описание

OSRM Server — это специальное ПО, которое умеет просчитывать и возвращать оптимальные маршруты в условиях переданных ему координат (ширина, долгота).
Это ПО умеет работать не только с автомобильными маршрутами, но так же и с велосипедными и пешеходными.

OSRM поставляется с открытым исходным кодом, которое можно найти в GitHub репозитории автора — разработчика (ссылка). Так же у авторов данного проекта существует сайт, в котором подробно описано API.

Рекомендованные системные требования

Операционная система: Ubuntu 18.04;
Оперативная память: 4 gb+;
Процессор: Intel i3, 2.5 ghz, 2 ядра или 4 потока. Или любой другой с тактовой частотой больше 2 ghz;
Память: 120 gb SSD либо HDD;

Установка

Для начала необходимо обновить систему

sudo apt-get update
sudo apt-get upgrade


Устанавливаем необходимые зависимости

sudo apt-get install build-essential git cmake pkg-config \
libbz2-dev libxml2-dev libzip-dev libboost-all-dev \
lua5.2 liblua5.2-dev libtbb-dev

Создаем папку с проектом

mkdir osrm
cd osrm

Клонируем репозиторий в созданную папку

git clone https://github.com/Project-OSRM/osrm-backend.git

Компилируем и собираем программное обеспечение

cd osrm-backend
mkdir -p build
cd build
cmake ..
cmake --build .
sudo cmake --build . --target install

Конфигурируем системный файл ПО

cd ~/osrm
nano .stxxl

Добавленный в созданный файл следующие строки и сохраняем файл (CTRL + O):

disk=/tmp/stxxl,10G,syscall

Создаем ссылки на файлы конфигурации построения маршрутов

ln -s osrm-backend/profiles/car.lua profile.lua
ln -s osrm-backend/profiles/lib

Если вы хотите строить несколько маршрутов на одном сервере (автомобильный, велосипедный, пешеходный) необходимо выполнить следующие шаги:

Создаем отдельные папки для велосипедных / автомобильных / пешеходных маршрутов:

cd ~ && cd osrm
mkdir car && mkdir car && mkdir foot
sudo chmod -R 777 ../osrm

После создаем символьные ссылки отдельно для каждой папки
В данном примере мы создаем ссылки для автомобильных маршрутов

cd car
ln -s ../osrm-backend/profiles/car.lua profile.lua
ln -s ../osrm-backend/profiles/lib

Скачиваем карту местности, для которой необходимо строить маршруты
Лучше всего скачивать карту с сервиса Geofabrik

cd ~ && mkdir data && cd data
wget https://download.geofabrik.de/russia-latest.osm.pbf 

Извлекаем конфигурационные файлы из скаченной карты при помощи стандартного инструмента

cd ~ && cd data 
osrm-extract russia-latest.osm.pbf -p ../osrm/osrm-backend/profiles/car.lua

Копируем конфигурационные файлы в папку с автомобильными маршрутами

cd .. 
cp -r data/. osrm/car

Собираем наш сервер с автомобильными маршрутами

cd osrm/car
osrm-contract russia-latest.osrm

Запускаем сервер с маршрутами и проверяем работу

osrm-routed russia-latest.osrm

У вас должен запуститься сервер на 5000 порту, который будет ожидать запросы

Print Friendly, PDF & Email