Fakt mi to vrtá hlavou. Jak asi vyřešili online update průjezdnosti, což musí být logicky největší část přenesených dat? (Nové ulice a adresy zase tak rychle nevznikají, aby bylo nutné přenášet je v reálném čase).
Tak řádově:
Celá Praha má cca 7500 ulic. I když se ty dlouhé rozdělí na kratší úseky od křižovatky ke křižovatce, vejdeme se řádově třeba do 64k segmentů? K identifikaci segmentu nám stačí 2bytové číslo, plus 1 byte na velmi přesný index průjezdnosti s hodnou 0-255.
3 B x 64 k = tabulka o velikosti 196 KB. Když si ji budu posílat každou minutu, mám za 15 min. 2,9 MB dat (oproti 15 MB co mi to stahuje teď) a to jsem to udělal EXTRÉMNĚ prasácky s nulovou optimalizací, kdy mám každých 60 sekund kompletní mapu průjezdnosti úplně všech ulic v Praze, což nepotřebuju. Šlo by to udělat minimálně třeba jen rozdílově a nepřenášet záznamy, které se nezměnily (tj. naprostá většina) - přenášet jen změny od poslední minuty, což bude úplně zanedbatelný zlomek a téměř nulové přenosy. Dále by se samozřejmě daly nepřenášet celé sektory území, kudy v nemám reálnou šanci vůbec projíždět. Atd. atd., dalo by se to podle mě stáhnout o dva řády níže, než je to teď a to se moc nesnažím.
A to od začátku uvažuji tak hloupě, že se mi v mobilu updatují databáze ze serverů a navigaci počítá telefon lokálně. Přičemž celá navigace je při chodu evidentně připojená k serverům a něco stále přenáší, tj. bylo by asi jednodušší přenášet přes 4G pouze na začátku start-cíl, to je pár bytů, pak mi server vrátí spočítanou trasu, to je taky malé ... a pak už nic. Server si udrží mou session a hlídá změny stavu; pouze pokud na mé trase dojde k nějaké změně v dopravě, pushne mi update pouze relevantních dat (nebo rovnou novou trasu), což je opět minimální přenos.
Čte to tu někdo ze Seznamu, aby mě vyvedl z mého omylu? :)