Visualisation de la résolution par l'algorithme génétique sur un processeur i5-4200M (processeur portable, 2 coeurs hyperthreadés architecture Haswell) :
Le serveur osrm est démonisé avec supervisor sudo apt install supervisor
config :
sudo nano /etc/supervisor/conf.d/osrm.conf
[program:osrm]
directory=/chemin/absolu/dossier/contenant/albi_large.osrm
command=osrm-routed albi_large.osrm --max-trip-size 1000 --max-table-size 700
user=[utilisateur propriétaire du processus osrm-routed]
le processus node exécutant Rout-Ine peut aussi être démonisé avec supervisor
config :
sudo nano /etc/supervisor/conf.d/rout-ine.conf
[program:rout-ine]
directory=/chemin/absolu/Rout-Ine/server
command=node .
user=[utilisateur propriétaire du processus rout-ine]
Il suffit ensuite de redémarrer le service supervisor
sudo service supervisor restart
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
pour d'autres systèmes : Installing Node.js
cd server
npm install
configuration dans config.json
Le fichier utils.js
qui se trouve dans le dossier client ne doit pas être modifié directement, c'est en fait la version "navigateur" du fichier server/utils.js obtenu avec les modules browserify
et watchify
installation globales de ces modules :
npm install -g browserify watchify
utilisation :
watchify utils.js -o ../client/statics/utils.js -s utils -v
L'application fonctionne avec une base de données MySQL qui doit être créée avec le script ccas_food_delivery_tours.sql
les paramètres de connexion à la base sont présents dans config.json
node .
C'est tout, ctrl-c
pour arrêter le serveur
Pour démarrer avec OSRM il faut d'abord des données Open Street Map on peut en obtenir sur (https://mapzen.com/data/metro-extracts), Télécharger les données au format osm.pbf
Je conseille d'enregistrer ce fichier dans un dossier dédié à cette carte
Mon fichier utilisé sera ici nommée albi_large.osm.pbf :
Les données de routage vont pouvoir être extraites et normalisée par osrm-extract
Nous sommes intéressés par le routage routier uniquement, nous allons donc utliser le profil par défaut voitures car.lua
:
osrm-extract albi_large.osm.pbf -p /usr/local/share/osrm/profiles/car.lua
Si OSRM a besoin de trop de mémoire il est préférable d'allouer un fichier de swap :
fallocate -l 100G /path/to/swapfile
chmod 600 /path/to/swapfile
mkswap /path/to/swapfile
swapon /path/to/swapfile
Le résultat de osrm-extract
est un fichier albi_large.osrm entre autres.
L'étape finale de préparation est l'exécution de osrm-contract
:
osrm-contract albi_large.osrm
Le serveur est fin prêt !
osrm-routed albi_large.osrm --max-trip-size 1000 --max-table-size 700
L'option --max-trip-size
spécifie le maximum de coordonnées que le serveur acceptera pour le service trip
L'option --max-table-size
spécifie le maximum de coordonnées que le serveur acceptera pour le service table
Le serveur écoute sur le port 5000 par défaut, un test dans le navigateur sur l'ip du serveur et le port 5000 doit retourner du json similaire à
{
"message":"URL string malformed close to position 1: \"\/\"",
"code":"InvalidUrl"
}