Dev Module Itinéraire


#1

Bonjour tout le monde,

Après avoir vue le module google direction sombrer à cause de l’API payante de google :disappointed_relieved:, je me suis reporté sur une méthode proche de celle de google, c’est à dire utiliser l’API de Navitia.

Si vous ne connaissez pas, n’hésiter pas à aller faire un tour sur leur page web : https://www.navitia.io/. :wink:

Donc, pour en venir au fait que je songe à dev un module qui sera quasiment identique au module direction actuel. Mais, débutant en développement de module, pensez-vous que reprendre une partie du plugin direction peut-être une bonne initiative ? :thinking:

Merci à l’avance pour votre aide.


#2

Hello,

Moi qui suis autodidacte en programmation, je ne peux que te recommander de t’inspirer de ce qui existe pour comprendre déjà.
Ensuite le module navigation de Gladys fait appel a l’API Google, donc si ton idée s’articule autour d’une autre API, le module direction te permettra de “ne pas réinventer” la roue mais d’avoir déjà une base avec juste l’appel de l’API à changer.

Ce n’est que mon avis… Je ne dis pas que c’est la meilleure idée, mais a priori je ferrais comme toi hehe


#3

Déjà merci pour cette réponse constructive.
Du coup j’en conclus que je vais m’aider du module déjà existant de direction, comme tu me la conseillé.
Par contre je ne sais pas exactement quand il sera fini car je risque sûrement de bloquer sur quelques points, mais on verra par la suite :+1:


#4

Bonjour,

Après quelques jours :sweat_smile:, je partage un bout du module Navitia (ou direction pour les intimes), pour savoir si des personnes veulent l’essayer.

Par la suite, vous pourrez me dire si le module fonctionne avec vos trajets, mais surtout si c’est assez “intuitif” au niveau du paramétrage .

Envoyez moi un message privé pour essayer le module .

J’attends vos retours :blush:


#5

Salut, @JeuFore, un lien vers ton module ?


#6

Yes

Pour faire fonctionner le module, on doit créer une clé API sur le site de Navitia :
https://www.navitia.io/register/

Ensuite il faut créer dans les paramètres de Gladys une clé qui s’appellera NAVITIA_API_KEY, et à coté on y ajoute la clé API que vous avez obtenus sur le site.

Après cela fait, vous pouvez écrire dans un petit script :

var options = {
    origin : '10 Rue des Charmes, 67150 Limersheim',
    destination : '9 Place de la Cathédrale, 67000 Strasbourg',
    mode : 'car'
};

gladys.modules.navitia.exec(options);

C’est un exemple :wink:, du coup le coverage vous n’êtes pas obliger de le mettre, l’origin aussi, et le mode vous pouvez mettre ‘car’ ou ‘bike’.


#7

@piznel j’ai oublié de te dire un truc

Le lien pour crée l’API :sweat_smile:

https://www.navitia.io/register/

Ensuite tu écris NAVITIA_API_KEY et à coté l’API que tu as crée .
Sorry :confused:


#8

Nickel, je testerai demain.


#9

la même !!!
merci pour avoir fait ce travail


#10

Si vous voulez vérifier votre trajet aller sur :

http://canaltp.github.io/navitia-playground/play.html?

En haut à droite de la page vous mettez l’URL qui apparaît dans la console de Gladys


#11

Hello @JeuFore,

Ca ne dérange peut-être que moi, mais pourrais-tu renommer ton repo en “gladys-navitia”, pour rester dans l’esprit des modules Gladys ? :wink:


#12

@Pti_Nico Pas de problème, je change ça tout de suite :+1:


#13

Je me note de tester ça ce week-end et je te ferais un retour aussi !

En attendant bravo pour le boulot ! (je te féliciterai pour le fonctionnement après le test :wink: )


#14

Pas de problème test qu’en tu en a le temps.:wink:
Tu me remerciera après, si tout aura bien fonctionner :blush:


#15

Du coup des personnes ont essayés le module ?
Si oui, pouvez-vous me faire des retours sur ce dernier ?


#16

J’attends le mail de validation de navita depuis dimanche ! Je vais retenter le truc dès que j’ai un moment


#17

Okay
Normalement il te le valide instantanément :thinking:


#18

Hello ! J’ai eu le mail avec une autre adresse ! Passons,

J’ai testé :
Comme slug j’ai mis “navitia” sans être sur, tu peux confirmer ?

J’ai repris ton script :
Alors si je lance ton script :

var options = {
    coverage : 'sncf',
    origin : '10 Rue des Charmes, 67150 Limersheim',
    destination : '9 Place de la Cathédrale, 67000 Strasbourg',
    mode : 'car'
};
gladys.modules.navitia.exec(options);

J’ai cette erreur et Gladys reboot (pareil si je remplace car par bike):

    0|gladys   | origin = 7.6379801;48.4544646
    0|gladys   | destination = 7.7501355;48.5812994
    0|gladys   | https://TOKEN@api.navitia.io/v1/coverage/sncf/journeys?from=7.6379801;48.4544646&to=7.7501355;48.5812994&first_section_mode[]=car
    0|gladys   | TypeError: Cannot read property '0' of undefined
    0|gladys   |     at Request._callback (/home/pi/gladys/api/hooks/navitia/lib/exec.js:73:43)
    0|gladys   |     at Request.self.callback (/home/pi/gladys/node_modules/request/request.js:185:22)
    0|gladys   |     at emitTwo (events.js:126:13)
    0|gladys   |     at Request.emit (events.js:214:7)
    0|gladys   |     at Request.<anonymous> (/home/pi/gladys/node_modules/request/request.js:1157:10)
    0|gladys   |     at emitOne (events.js:116:13)
    0|gladys   |     at Request.emit (events.js:211:7)
    0|gladys   |     at IncomingMessage.<anonymous> (/home/pi/gladys/node_modules/request/request.js:1079:12)
    0|gladys   |     at Object.onceWrapper (events.js:313:30)
    0|gladys   |     at emitNone (events.js:111:20)
    0|gladys   |     at IncomingMessage.emit (events.js:208:7)
    0|gladys   |     at endReadableNT (_stream_readable.js:1055:12)
    0|gladys   |     at _combinedTickCallback (internal/process/next_tick.js:138:11)
    0|gladys   |     at process._tickDomainCallback (internal/process/next_tick.js:218:9)

Si je supprime "coverage : ‘sncf’ " , Ca fonctionne :

0|gladys   | origin = 7.6379801;48.4544646
0|gladys   | destination = 7.7501355;48.5812994
0|gladys   | https://TOKEN@api.navitia.io/v1/journeys?from=7.6379801;48.4544646&to=7.7501355;48.5812994&first_section_mode[]=car
0|gladys   | depart = 200127
0|gladys   | arrive = 203550

Ca marche aussi en ‘bike’ :

0|gladys   | origin = 7.6379801;48.4544646
0|gladys   | destination = 7.7501355;48.5812994
0|gladys   | https://TOKEN@api.navitia.io/v1/journeys?from=7.6379801;48.4544646&to=7.7501355;48.5812994&first_section_mode[]=bike
0|gladys   | depart = 204127
0|gladys   | arrive = 215720

Par contre quand ça fonctionne :
Si je lance les requêtes l’une après l’autre (bike puis car) je récupère ça :

0|gladys   | https://TOKEN@api.navitia.io/v1/journeys?from=7.6379801;48.4544646&to=7.7501355;48.5812994&first_section_mode[]=bike
    0|gladys   | depart = 204127
    0|gladys   | arrive = 215720
    0|gladys   | origin = 7.6379801;48.4544646
    0|gladys   | destination = 7.7501355;48.5812994

0|gladys   | https://TOKEN@api.navitia.io/v1/journeys?from=7.6379801;48.4544646&to=7.7501355;48.5812994&first_section_mode[]=car
0|gladys   | depart = 201057
0|gladys   | arrive = 204520

Je trouve bizarre que le départ en voiture se fasse à 20:10:57 (heure actuelle chez moi) et que pour le vélo à : 20:41:27 :thinking:

Voila pour les premiers tests ! Mais a priori il y à une partie qui marche et donne des résultats cohérents en durée ! Bravo :slight_smile: !

Tiens nous au courant si tu sais d’ou vienne les erreurs

Question :
Il n’y a que bike et car de possible ?


#19

Hello ! Tout d’abord merci pour ton retour détaillé :relaxed:
Du coup, répondons à tout ça !

Comme slug j’ai mis “navitia” sans être sur, tu peux confirmer

Oui il faut bien mettre navitia dans slug

Si je supprime "coverage : ‘sncf’ " , Ca fonctionne

Le coverage signifie grossièrement de vouloir prendre le train, mais de temps en temps l’API de Navitia bug sur ce point.(Le bug du reboot sera corrigé :+1:)

Je trouve bizarre que le départ en voiture se fasse à 20:10:57 (heure actuelle chez moi) et que pour le vélo à : 20:41:27 :thinking:

En voiture le départ est immédiat jusqu’au point d’arrivé, alors qu’en vélo, l’itinéraire passe par des transports en commun. Du coup, il te fait partir en fonction de l’heure des transports en commun.

Par la suite, l’itinéraire sera détaillé (du moins je l’espère :roll_eyes:)

Question :
Il n’y a que bike et car de possible ?

Non, il y a :

  • bike
  • bss
  • car
  • ridesharing
  • walking

Petite question ?
Tu as essayé avec ton itinéraire pour voir si cela marché ?

Merci d’avoir testé, et de m’avoir fait part des bugs. :wink:


#20

Non, je n’ai pas eu le temps ^^

Je voulais me refaire un test un peu plus complet avec mes trajets (Sur Paris, donc transport en commun toussa toussa ! )

Je te ferrais un retour dès que je me donne le temps de faire ça bien :slight_smile:

Mais c’est cool ce que tu fais ! N’étant pas fan de google, j’y vois une possibilité d’utiliser enfin Gladys pour mes trajets hehe !