Open source route machine, este programa permite usarse como servidor para poder saber direcciones entre 2 o mas ubicaciones , similar a lo que hace el api de directions de google
LOCAL
Requerimientos:
- linux (Ubuntu)
- cmake
- git
- librerías básicas
- 8GB de RAM
Proceso:
- Instalar las librerias
-> sudo apt install build-essential pkg-config \libbz2-dev libxml2-dev libzip-dev libboost-all-dev \lua5.2 liblua5.2-dev libtbb-dev - Clonar el repositorio de osrm-backend
-> git clone https://github.com/Project-OSRM/osrm-backend.git && cd osrm-backend - Instalacion:
-> mkdir -p build
-> cd build
-> cmake ..
-> cmake --build .
-> sudo cmake --build . --target install - Descargar el archivo .pbf que se utilizara
http://download.geofabrik.de/ - Extraer el archivo pbf
-> osrm-extract -p /usr/local/share/osrm/profiles/<car,foot>.lua /ruta/al/pbf
-> osrm-partition /ruta/al/osrm
-> osrm-customize /ruta/al/osrm - Iniciar servidor
-> osrm-routed --algotithm mld /ruta/al/osrm
Requerimientos:
- 8GB de RAM exclusiva para el docker
- Docker
docker-compose.yml
version: "3"
services:
server:
build: .
container_name: osrm
stdin_open: true
tty: true
ports:
- "8200:5000"
command: bash -c "osrm-routed --algorithm mld florida-latest.osrm"
Dockerfile
FROM osrm/osrm-backend
ADD . /opt/data
WORKDIR /opt/data
RUN apt-get update && apt-get install -y wget &&
wget http://download.geofabrik.de/north-america/us/florida-latest.osm.pbf &&
osrm-extract florida-latest.osm.pbf -p /opt/car.lua &&
osrm-partition florida-latest.osrm && osrm-customize florida-latest.osrm
EXPOSE 8200
Proceso:
- Utilizar el docker-compose
-> docker-compose up
HEROKU
Para montar OSRM en heroku, es mejor tener los archivos ya extraídos debido a que realizar el proceso de extracción la maquina requiere de 8GB de RAM.
Requerimientos:
- herokuCli
- archivos osrm
Dockerfile
FROM osrm/osrm-backend
ADD . /opt/data
WORKDIR /opt/data
CMD osrm-routed --algorithm mld colombia-latest.osrm --port $PORT
- En la carpeta donde tenemos los archivos osrm.
-> heroku container:login - Si aun no tienes creado el proyecto en heroku
-> heroku create <nombre> - Hacer el push de la imagen que se genere (esto puede tardar)
- -> heroku container:push web -a <nombre>
- Hacer el release del container
-> heroku container:release web -a <nombre>
Ya una vez hecho esto el servidor quedara funcionando para su uso.
No hay comentarios:
Publicar un comentario