[Talk-transit] How routing software works (and why OSM as-is is not ready for routing)

Michał Borsuk michal.borsuk at gmail.com
Sun Jan 23 12:52:26 GMT 2011


Hello.

A few words how data is stored in routing software stores data and 
works: both HAFAS (specs not officially published) and GOOGLE TRANSIT 
(http://code.google.com/transit/spec/transit_feed_specification.html) 
store *not* actual bus, tram, etc. lines, but each departure from the 
terminus (Google), or any given stop (Hafas).

Read me again: actual "bus lines" are NOT stored in routing software!

Lines are displayed to the end user, because as of 21st century, "line" 
is a marketing concept. In fact, *very often* a bus (tram, S-Bahn, etc.) 
line consists of many different traces, or "bus lines" in the 
traditional sense. This is presented to the user as "bus line XXX", 
because users are used to it, and frankly it would be totally messy to 
present it to the final user.

So what you see here 
http://tisseo.fr/sites/default/files/Tisseo_hiv16web.pdf is indeed 
stored in the database this way:
* runs to Sept-Deniers and to Stade Ernest Wallon are saved as separate 
runs (=relations)
* runs in the opposite direction are saved as yet separate runs (so by 
now we have 4 relations per "bus line"!)
* any exception, such as here "Excepté le mercredi" and "Uniquement le 
mercredi" (Except Wed. and Only on Wed.) are mapped as yet separate 
relations
* initial and final runs that do not start and end respectively at 
termini are - you guessed it - saved as separate relation.

So here we have at least 6 relations, and we're on "Monday to Friday" 
schedule only! Add to it Saturdays, Sundays (very often different), all 
those schoolday-only runs, those Wendesday runs - and it becomes a total 
mess.

What becomes clear here that OSM itself is unable to store such amount 
of information. Any proper routing software will have to use a 
*separate* platform, plugin, website, application layer, you name it. It 
simply makes no sense to attempt to store all the data in OSM framework, 
because in my opinion *it is not fit* for it. Yes, we could have 8 or 15 
relations per line, it is possible, but not sensible.


(continued in next post)

LMB





More information about the Talk-transit mailing list