hove-io / navitia

The open source software to build cool stuff with locomotion
https://www.navitia.io/
GNU Affero General Public License v3.0
434 stars 126 forks source link

Support Journeys with Via/Intermediate Stations #1589

Open grote opened 8 years ago

grote commented 8 years ago

Currently, journey queries only support from and to, but not a via station: http://doc.navitia.io/#journeys

This is a location where your travel route should pass by when itineraries are computed. For example, a tourist might want to visit the eiffel tower while changing train stations and look for:

This feature is supported by many journey planners and it would be nice, if Navitia would support it as well.

stifoon commented 8 years ago

We have not planned to support that feature in the short run. Here is some explanations: the previous version of Navitia (very old application, written in Delphi/Lazarus :p ) supports that feature (you can find it on www.vianavigo.com for example) But 3 years ago, we have tested 2 features in this old version, which made this feature less and less used:

After analysis of (millions of :) ) requests, we have noticed that less than 1% of travelers continue to use the "via" parameter. So we have concluded that it wasn't use to make a "pause at Eiffel Tower", but to find the itinerary they useally run. And journey planners don't find them so frequently ! That's why we are working on quality of journeys, and why we haven't planned to code that feature yet.

But if you (or someone else!) want to code it, it will be a great pleasure to merge it :) And if hundreds of re-users want us to do it, you will be listen to...

pbougue commented 8 years ago

It's good to have feedback, thanks @grote ! The alternatives we can think of are parameters allowed_uris[] (you can use only the provided uris for journey, like if you provide lines, then they become the only lines you can use, but not mandatory). Also mandatory_uris[] that would literally be a kind of via, but with no stop duration... At least the use cases would be clear.

But the via is tricky also because it's hard to know precisely what the PT user means by that, if he want to pause or not, if he just wants to share his journey with someone else (but in that case the real use may be to plan 2 journeys at the same time, and well, not an easy problem :) ). We can try to think of it, for example what is the use case you imagine for that via? Simply 2 journeys that you "stick" together? More than that? We would need some user feedback to build a smart algorithm that works, then we would need to have it performs correctly, but that's on C++'s side :) So again, any suggestion or feedback is welcome to help understand the needs and prioritize, and thanks for those issues!

pbougue commented 8 years ago

Also asked by some other user who would like to ask for the same journey everyday, looking for disruptions... So allowed_uris / mandatory_uris would do the job!