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 softwaru 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 znamená, že postup do další fáze závisí na důsledně provedené analýze všech rizik a možných problémů (viz Obr. 1). Rizika lze v kontextu spirálového modelu chápat v nejobecnějším smyslu (mohou tak zahrnovat např. i vztah k uživatelskému prostředí nebo ovládání softwaru). Model je založen na iterativním přístupu a především zavádí opakovanou analýzu všech rizik. Lépe se tak vyrovnává s pozdější úpravou požadavků. Proto je model vhodný pro projekty, kde se požadavky upřesňují teprve v průběhu vývoje, což byl případ této práce. Hlavní myšlenkou je zde navazování nových částí na již důkladně prověřený základ. Z počátku se vývoj provádí na základě hrubé specifikace požadavků, v pozdějších fázích je tato specifikace i po konzultaci s koncovými uživateli postupně upřesňována (Kadlec, 2004).

Celý životní cyklus podle Spirálového modelu je rozdělen do čtyř hlavních částí.

  • Určení cílů, alternativ, omezení
  • Vyhodnocení alternativ, identifikace a řešení rizik
  • Vývoj a verifikace další úrovně produktu
  • Plánování následujících fází

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

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 (viz Obr. 14).

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