Skip to content

Proof of Concept OSRM

Rémy edited this page Jan 24, 2020 · 3 revisions

Proof of Concept OSRM

L'objectif de ce Proof Of Concept est de réaliser un premier calculateur d'itinéraire utilisant le calculateur OSRM et les données OpenStreetMap.

⚠️ Attention : Un script permettant d'automatiser cette installation est disponible à le fin de cette page. Cependant, les instructions suivantes vous permettront de comprendre ce que fait le script.

⚠️ Attention : Vous devez avoir npm d'installé, et sa version n'a été testée que pour la 6.11.3. Des erreurs ont été constatées en utilisant une version ultérieure de npm. Cet élément à été pris en compte dans le script. Regardez la section 'Versions des logiciels testées' pour plus de détails.

Versions des logiciels testées

Nous pouvons assurer que le projet fonctionne avec les versions suivantes :

Programme Version
npm 6.11.3
ember-cli 3.14.0
node 12.11.0
docker 19.03.5, build 633a0ea
git 2.18.0

OpenStreetMap

OpenStreetMap est un projet de cartographie qui vise à constituer une base de données géographiques libre du monde, en utilisant le système GPS et d'autres données libres. Nous avons extrait ces données pour le vélo et pour le Pays de la Loire, ensuite nous avons utilisé ces données pour afficher un fond cartographique et répondre aux problématiques de calcul d’itinéraires.

OSRM

L'Open Source Routing Machine ou OSRM est l'implémentation C++ d'un moteur de recherche d'itinéraire permettant d'obtenir les plus courts chemins dans un réseau routier. Il est libre service et nous l'avons utilisé pour les multiples services qu'il fournit exploitant les données OpenStreetMap. Par exemple, il possède un mode "vélo" et fournit les services "Route", trouve la route la plus courte reliant les coordonnées fournies, et "Nearest", retrouve les n routes les plus proches des coordonnées fournies.

Docker

Le backend d’OSRM est un serveur implémenté en C++. Plutôt que de l'installer et de le recompiler, nous avons préféré l’utiliser au travers de sa dockerisation.

Pour télécharger nos fichiers et les installer sur le conteneur Docker, suivez ce tutoriel : Docker OSRM

Création du projet Ember.js

Ember.js est un cadriciel open-source JavaScript tourné vers les applications web. Il s'appuie sur une architecture de type MVC.

Pour créer notre projet Ember, la première étape va être d'installer Ember CLI :


npm install -g ember-cli

Nous avons évidemment travailler sur ce projet grâce à un gestionnaire de version, GitHub. Le projet est disponible à l'adresse https://github.com/Maxence-Bouet/pfeEmber.git. La seconde étape est de cloner le repository de notre projet depuis GitHub vers votre machine. Pour ceci, exécutez la commande suivante :


git clone https://github.com/Maxence-Bouet/pfeEmber.git

Ensuite, nous devons installer toutes les libraires nécessaires à notre projet. Pour cela, nous devons aller dans notre projet :


cd pfeEmber

Puis lancer la commande suivante :


nom install

Cette installation peut prendre un peut de temps.

Une fois l'installation des dépendances effectuée, nous pouvons lancer notre serveur ember avec la commande suivante :


ember server

Un serveur à été créé, et est disponible à l'adresse http://localhost:4200

Si vous avez des erreurs, allez à la section suivante.

Résolution d'erreurs

Des erreurs peuvent survenir lors de l'utilisation de leaflet avec Ember.

Erreur de leaflet-map :

S'il s'agit de l'erreur Could not find module ember-leaflet/templates/leaflet-map imported from ember-leaflet/components/leaflet-map , il suffit de trouver le fichier avec erreur, disponible au :


node_modules/ember-leaflet/addon/components/leaflet-map.js

Puis de remplacer à la ligne 10 :


import layout from '../templates/leaflet-map';

Par :


import layout from '../templates/current/leaflet-map';

Erreur de div-overlayable :

S'il s'agit de l'erreur Could not find module ember-leaflet/templates/leaflet-map imported from ember-leaflet/mixins/div-overlayable , il suffit de trouver le fichier avec erreur, disponible au :


node_modules/ember-leaflet/addon/components/div-overlayable.js

Puis de remplacer à la ligne 3 :


import layout from '../templates/div-overlayable';

Par :


import layout from '../templates/current/div-overlayable';

Script d'automatisation de l'installation du Proof-Of-Concept

Nous avons réalisé un script permettant d'automatiser l'installation du projet, disponible en fin de page. Il vous suffit de décompresser le fichier EmberOSRMScript.zip et de lancer installEmberPFE.sh.

Fichier Zip : Script d'installation de l'application Web