Wizualizacja lotu i liczenie długości brzmi prosto, no nie? Połączyć kreską dwa punkty na mapie i policzyć długość tej kreski mnożąc przez skalę. Tylko że Ziemia nie jest płaska, o czym czasem, oglądając mapy zapominamy :-)
Współrzędne GPS dowolnych adresów
Żeby móc pokazać trasę lotu, musieliśmy zdobyć listę wszystkich lotnisk z informacjami o ich położeniu GPS. Alternatywą, było by znalezienie podobnej listy z adresami i konwersja tych adresów na współrzędne GPS. To drugie rozwiązanie często stosujemy projektując różnego rodzaju bazy adresowe np. firm, miejsc (restauracji, atrakcji turystycznych) – mało kto zna współrzędne, czyli szerokość i długość geograficzną, pod jaką mieszka czy pracuje. Mamy więc mechanizmy, które podają nap współrzędne, dla dowolnego adresu. No ale z lotniskami było łatwiej, dotarliśmy bowiem do branżowej listy, a akurat dla pilotów ważniejsze były współrzędne a nie adresy, więc ten etap poszedł sprawnie i szybko.
Wizualizacja na mapie
Wiele naszych aplikacji korzysta z map – czy to na stronie kontaktu, czy pokazuje ciekawe miejsca w okolicy pensjonatu, czy wiele sklepów sieci – mapy są na większości stron. Możemy na nich pokazać punkty, trasy, dowolne kształty (np. granice działki), przysłonić część mapy by uwydatnić inną część, możemy też grupować punkty by w dużym oddaleniu mapa była nadal czytelna. Mapy Google dają nam wiele możliwości, staramy się z nich wszystkich korzystać. Narysowanie trasy lotu na mapie to faktycznie zabawa w stylu połącz kropki – nie ma bowiem znaczenia (w kwestii liczenia oficjalnej długości lotu) trasa przelotu, np. omijająca burze, góry czy niebezpieczne kraje – liczy się odległość między lotniskami.
Odległość 2 miejsc na mapie
Takie proste zadanie – 2 punkty na mapie, skala, ale jak porównać tak prosto wyliczone odległości z tym co widnieje na bilecie lotniczym (czy w informacji o locie), to coś nie pasowało. Oficjalna długość lotu była zawsze dłuższa. Szybko spostrzegliśmy zbyt duże uproszczenie tej metody. Ziemia jest przecież (w przybliżeniu) kulą. Odległość między dwoma punktami to odległość liczona po krzywiźnie ziemi - jakbyśmy rozciągali nitkę na globusie. Chwila poszukiwań i naszym oczom ukazały się takie wzory:
Chwilę później wiedzieliśmy już co to Ortodroma, Koło wielkie i… przystąpiliśmy do kodowania. Po testach, uproszczeniach i optymalizacji zostało z tego raptem 20 linijek i masa satysfakcji, gdy wyniki zaczęły idealnie pasować do tych oficjalnie uznanych. No a nasz klient mógł od teraz podać taką odległość pomiędzy dowolnymi dwoma lotniskami na świecie. Kolejne zadanie wykonane, a my mamy przy okazji powtórkę z geografii i matematyki.