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 časyUTC 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.