Použité metody a postupy

Převážnou část vypracování této bakalářské práce tvořil vývoj mobilní aplikace. Na začátku bylo nutné stanovit plán vývoje a metodiku tvorby této aplikace.

Metodika vývoje software je souhrn postupů, pravidel a nástrojů používaný pro návrh, plánování a řízení vývoje software. Postupem čau se vyvinulo přístupů, které se liší dobou svého vzniku, přístupem k samotnému vývoji, počtem iterací, velikostí projektu a kooperaci s cílovou skupinou (Kadlec, 2004). Autor pro tvorbu aplikace využíval tzv. „Spirálový přístup“.

Tento model se skládá ze čtyř fází, které se dokola opakují, dokud není finální produkt hotový. To se v praxi projevuje tak, že přechod do následující fáze je podmíněn podrobnou analýzou potenciálních problémů a rizik. U spirálového modelu je možné představit si problémy v obecné rovině. Mohou jimi například být i vztah k uživatelskému prostředí nebo ovládání software). Základem spirálového modelu je opakující se přístup spojený se znovu se opakující analýzou všech problémů. Na rozdíl od vodopádového modelu je možné v průběhu upravovat požadavky. Díky tomu je tento model vhodný také pro projekty, kde se požadavky upřesňují teprve v průběhu vývoje, což byl případ této práce. Základem tak zůstává tvorba nových částí, které vycházejí z již prověřeného základu. Na začátku se vyvíjí pouze ze specifikace vycházející ze zběžné analýzy požadavků, později jsou pak tyto požadavky i po konzultaci s koncovými uživateli postupně upřesňovány (Kadlec, 2004).

Vývojový cyklus se dle spirálového modelu dělí na čtyři stěžejní části.

  • Stanovení cílů, analýza možných problémů
  • Zvážení jiných řešení, popsání a práce s riziky
  • Vývoj a ověření následující verze produktu
  • Plánování dalších fází

Spirálový přístup k vývoji software

Pokud by vývoj probíhal ve větším týmu programátorů, bylo by zapotřebí použít některý z moderních přístupů tzv. agilního vývoje, kde je kladen důraz na spolupráci a rozdělení rolí v týmu (Kadlec, 2004).

Pro zpracování dat z aplikace bylo použito zabudovaných struktur programovacího jazyka pro práci se soubory a řetězci.

Zpracování dat z navigačního systému již bylo obtížnější a základní nabídka funkcí a metod byla nedostačující. Proto pro výpočty na povrchu Země bylo použito vzorců a vztahů, které počítají vzdálenosti a úhly na ortodromě. Tyto rovnice jsou podrobněji popsány níže.

Postup práce

Všechny následující vzorce pro výpočet na zemském povrchu počítají pro zjednodušení se Zemí jako referenční koulí. Jako poloměr Země byla použita všeobecně přijímána vzdálenost 6371 km (Misra, Enge, 2006). Přehled a zpracování zákonů a vzorců pro výpočty na zemském povrchu zapracoval Chris Veness (2002) do programovacího jazyka JavaScript, z kterého autor bakalářské práce vycházel. Vzorce byly upraveny a převedeny do jazyka Java.

Azimut dvou bodů

Pro výpočet azimutu mezi dvěma body postačí znát jejich zeměpisnou šířku (φ) a zeměpisnou délku (λ). Počáteční bod má index 1 a koncový bod index 2. K výsledku je přičteno 180° z důvodu, aby výsledek byl v intervalu >0°;360°<. Tento vzorec vychází z Harvesinova zákona.

Vzorec pro výpočet azimutu dvou bodů

Azimut letové osy je nutno znát k zobrazení tohoto údaje v dolním panelu aplikace a pro další výpočty jako jsou prodloužené osy, zobrazení maximální přípustné tolerance nebo křivka pro otáčení letadla. Naopak směr pohybu není nutnou počítat, je již obsažen v GPS datech, respektive NMEA větě.

Vzdálenost dvou bodů

Pro výpočet vzdálenosti dvou bodů slouží v operačním systému Android metoda distanceBetween() třídy Location. Pro použití ve vzorci pro výpočet nejkratší vzdálenosti mezi bodem a přímkou bylo ovšem nutné vypočítat tuto vzdálenost pomocí vzorce. Je třeba znát zeměpisnou šířku (φ) a zeměpisnou délku (λ) dvou bodů a poloměr Země (R).

Vzorec pro výpočet vzdálenosti dvou bodů

Projekce bodu

K projekci bodu je nutno znát počáteční polohu, resp. zeměpisnou šířku (φ) a zeměpisnou délku (λ), dále vzdálenost od tohoto bodu (d), poloměr Země (R) a azimut (θ). Počáteční bod má index 1 a promítaný bod index 2.

Vzorec pro projekci zeměpisné šířky

Vzorec pro projekci zeměpisné délky

Těchto vzorců je využito pro vykreslení prodloužených os, kdy je nejdříve vypočten azimut letové osy, poté promítnut bod z koncového bodu osy s tímto azimutem a vzdáleností podle nastavení uživatele. Stejným způsobem je promítnut i druhý bod z počátečního bodu osy, azimutem zmenšeným o 180° a stejnou vzdáleností. Nakonec jsou vykresleny dvě linie spojující první promítnutý bod s koncovým bodem letové osy a druhý promítnutý bod s počátečním bodem letové osy.

Krajní body linií zobrazující maximální přípustnou odchylku jsou vypočteny pomocí promítnutí čtyř bodů. První dva jsou promítnuty z počátečního bodu osy ve vzdáleností definované u této osy (maximální přípustná odchylka) a azimutu osy zmenšeném nebo zvětšeném o 90°. Stejným způsobem jsou promítnuty i body z koncového bodu letové osy. Nakonec jsou dva a dva body spojeny liniemi, tak aby tyto linie byly rovnoběžné s letovou osou.

Nejkratší vzdálenost bodu a přímky

Pro výpočet odchylky letounu od letové osy je nutné vypočítat nejkratší vzdálenost bodu a přímky. K tomuto je potřeba znát vzdálenost bodu, od kterého měříme vzdálenost (v tomto případě aktuální poloha) a počátečního bodu osy (d13), azimut mezi bodem, od kterého měříme vzdálenost a počátečním bodem osy (θ13), azimut mezi počátečním bodem osy a koncovým bodem osy (θ12) a poloměr Země (R).

Vzorec pro výpočet nejkratší vzdálenosti mezi bodem a přímkou

Podle toho jestli je výsledek menší nebo větší než 0, lze poznat, jestli leží bod nalevo nebo napravo od přímky. Přímka musí být orientována tak, aby počáteční bod ležel pod koncovým bodem. V závislosti na tom je u údaje odchylky zobrazena šipka ukazující, kterým směrem by měl letoun letět, aby se přiblížil letové ose.

Pomocné křivky pro otáčení letadla

Poloměr otočky letadla závisí na rychlosti, úhlu otáčky. S rostoucím úhlem stoupá také přetížení (Procházka, 2010). Úhel otáčky je pro každý letoun rozdílný, proto byla pro tuto aplikaci zvolena jin metoda, která je podobná metodě používané navigací IGI CCNS-5.

Pomocné křivky pro otáčení letadla jsou vypočteny s pomocí výše uvedených vzorců. Tyto křivky mají tvar půlkružnice o poloměru poloviny vzdálenosti mezi osami, na kterou navazuju čtvrtkružnice o poloměru celé vzdálenosti mezi osami. Tyto křivky jsou vykresleny dvě, na každé straně osy zrcadlově jedna. Jelikož knihovna MapBox nepodporuje vykreslování křivek, byly kružnice nahrazeny 360 úhelníky, resp. jejich částmi. Níže je zobrazen postup vykreslení těchto křivek.

Vykreslení křivek pro otáčení letadla