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 порту, который будет ожидать запросы