Globální aktivity a časová pásma

V této komplexnější ukázce si představíme modelovou aplikaci, která zobrazuje GPX aktivity uživatelů z celého světa. Trasy jsou vykresleny na mapě a vedle nich je seznam aktivit seřazený podle času startu.
Aplikace ukazuje, že nestačí pracovat jen s jedním časem. Lokální čas je pro uživatele přehledný (vidíme, že startoval v 9:00 ráno), ale neumožňuje férové porovnání napříč kontinenty. Dva výlety se stejným lokálním časem mohou ve skutečnosti začít s odstupem několika hodin v UTC.
Proto je nutné v nějaké formě uchovávat a používat oba časy – UTC pro řazení a porovnávání a lokální čas pro zobrazení. K převodu mezi nimi slouží TimeZone API, které vrací časovou zónu a platný offset vůči UTC na základě polohy.
Co ukázka dělá
V JavaScriptu jsou nasimulovány tři aktivity (např. cyklovýlety) z Ameriky, Evropy a Austrálie. Data obsahují:
- polohu trasy (start a několik bodů),
- čas startu v UTC (stejně jako v GPX souborech).
Aplikace pak pomocí TimeZone API převede UTC čas na lokální čas v místě startu.
- Mapa vlevo zobrazuje trasy aktivit.
- Seznam vpravo ukazuje název aktivity, lokální čas a UTC offset.
- Řazení probíhá podle UTC, i když podle lokálních časů by pořadí vypadalo opačně.
- Ukázka je pouze pro demonstraci, v reálné aplikace by převody časů probíhali spíše někde na backendu při nahrávání GPX dat.