Spojenka

Celostátní vyhledávač spojení v integrovaných dopravních systémech

Stáhnout pro Android Zdrojový kód (alternativní odkaz bez přihlášení)

Funkce

Spojenka je mobilní aplikace pro OS Android, s jejíž pomocí můžete vyhledávat spojení ve veřejné dopravě v několika integrovaných dopravních systémech zároveň. Spojuje tak univerzalitu celostátního vyhledávače s cenovou atraktivitou regionálních služeb. Aplikace je vyvíjena jako bakalářská práce pod MFF UK, je k dispozici s otevřeným zdrojovým kódem, bez reklam a zcela zdarma.

Ačkoli je aplikace stále v experimentální fázi, je ji možné s poměrně uspokojivou mírou spolehlivosti používat k vyhledávání napříč celostátními vlakovými linkami a spoji Pražské integrované dopravy. Jízdní řády autobusových linek ostatních systémů jsou v naší datové sadě zahrnuté taktéž, ale vzhledem k tomu, že nepocházejí přímo od původního zdroje, na tom pravděpodobně budou o něco hůře.




Optimalizace ceny spoje

Vyhledávání je možné vedle běžného režimu provozovat také s cílem nalezení (přibližně a zcela bez záruky) nejlevnější kombinace spojů. V aplikaci pak ještě můžete dílčí spoje posunutím vyměnit za předchozí nebo následující a tarif se automaticky přepočítá. Před nákupem jízdenky si Spojenka popovídá se servery dopravců, jako jsou České dráhy, a prověří, jestli náhodou jejich aktuální nabídka není výhodnější než tarif IDS, a v takovém případě ji použije. V opačném případě bude vystavená cena založená na kombinaci regionálních tarifů.

Integrace s aplikacemi IDS

Spojenka umožňuje přihlášení účty vybraných dopravních systémů, díky kterému budete moci při výpočtu jízdného zužitkovat své předplacené kupony v těchto systémech. Můžete tak výrazně ušetřit například při cestách ze svého bydliště nebo místa zaměstnání, máte-li na tuto oblast zakoupený předplacený kupon, a to i v případě, že cestujete mimo region.

Sledování spojů v reálném čase

U všech vlakových linek a také autobusových spojů zařazených do PID, IDPK a IDS JMK můžete ve Spojence zjistit, kde na své trase se zrovna nacházejí či zda jsou zpožděné. Vlaky, které byly odřeknuty nebo nahrazeny autobusovou dopravou, takovou skutečnost v případě, že by ovlivnila vyhledaný itinerář, budou mít vyznačeno na plánku trasy.

U všech spojů také můžete zjistit, zda jsou bezbariérově přístupné či jaké služby jsou poskytovány na palubě, v podání krásných ikonek nakreslených druhou nejkrásnější paní Chlebounovou, která je velice krásná.

Informace o odjezdech ze stanic

Potřebujete-li rychle zjistit, zda z některé stanice zrovna něco odjíždí, nebo jestli si ještě můžete dát kafe, můžete si v aplikaci zobrazit pohodlný výpis jedoucích spojů z libovolné stanice v databázi.

U vybraných stanic budou data navíc obohacena o informace o zpožděních a nástupištích, takže v případě, že se zrovna hvězdy sejdou, budete vždy v obraze.

Spojenka navíc disponuje téměř kompletními informacemi o příslušnosti stanic k tarifním zónám IDS, takže je v případě, že si budete chtít tarif spočítat sami, už nemusíte dohledávat hluboko v mapách.

Otázky a odpovědi

Kladete-li si tuto otázku, mohlo by vám být milejší nahlédnout do zdrojových kódů vyhledávacího jádra na Gitlabu.

Ale pokud se na to zrovna necítíte, vězte, že se pro oba režimy vyhledávání používá algoritmus RAPTOR. Mezi úpravy, které jsme na něm provedli, patří:

  • Plug-and-play multikriteriální vyhledávání
  • Omezení na min. čas na přestup a jejich počet
  • Podpora abstraktních geografických cílů (nikoli jen konkrétních uzlů)
  • Optimalizované hledání v obou směrech
  • Možnost zakázání přestupů přes noc

Vyhledávač spojení zjišťuje cenu z veřejně dostupných ceníků, které ne vždy obsahují aktuální informace o skutečné ceně jízdného v reálném čase. Například u vlaků Českých drah tzv. "vázané jízdenky" bývají často o desítky procent levnější než nominální kilometrické jízdné, a proto se v zájmu vašich úspor klientská aplikace Spojenky dodatečně ptá serverů dopravců, zda nejsou ochotny poskytnout lepší nabídku. Jelikož ale na rozdíl od aplikací typu Můj vlak musí vyhodnocovat výhodnost kombinací s jízdenkami IDS, nestačí ke zjištění ceny často pouze jeden dotaz a už vůbec není možné vyžádat si ceny pro více výsledků zároveň. Proto se cena "přepočítává" až v momentě, kdy kliknete na tlačítko pro zobrazení jízdenek, pro každý itinerář zvlášť, aby aplikace nevyvíjela přílišnou zátěž na back-endy dopravců.

Proces je obvykle téměř okamžitý, ale i na rychlých připojeních se může stát, že trvá velice dlouho, nebo dokonce dosáhne časového limitu odpovědi od serveru, a to v případě vlaků RegioJet, jehož vyhledávací algoritmus pracuje extrémně neefektivně navzdory tomu, že itineráře pod tímto dopravcem jsou téměř vždy přímá spojení, a máme tudíž důvod se domnívat, že ho napsal nějaký JavaScript programátor. V tomto případě se ovšem nejedná o chybu na straně Spojenky - vyzkoušet si to můžete sami v oficiální (v JavaScriptu napsané) aplikaci RegioJet. Nebo bych případně doporučil raději jet s Českými drahami.