Adobe Flex: programma per il calcolo delle distanze lossodromiche, ortodromiche ed altri parametri di navigazione

Gerardo MercatoreCon la scusa di dover imparare ad utilizzare Adobe Flex 3, ho cercato, invece del solito “Hello World”, di affrontare un esempio concreto e non troppo banale. Avendo già trattato l’argomento delle distanze geodetiche, ma solo sotto l’aspetto di circolo massimo che passa per due punti (ortodromia), ho voluto affrontare il problema anche sotto l’aspetto delle distanze lossodromiche, molto usate nella navigazione.
Chi va per mare, sa bene che cosa è una distanza lossodromica, per noi “terrestri” invece, la sola parola incute mistero. Per capire meglio l’arcano mi sono documentato e ho imparato che un geniale filosofo fiammingo del 1500, tal Gerardus Mercator allievo del matematico e cartografo Gemma Frisius, fu tra i primi a comprendere che una nave che segue sempre la stessa direzione indicata dalla bussola, non compie la distanza minore (circolo massimo) ma una curva denominata appunto lossodromica che appare come un’elica sferica sulla superficie del globo terrestre. Questa curva taglia i meridiani sempre con lo stesso angolo e questa è la differenza sostanziale rispetto all’ortodromia. Per facilitare il calcolo delle rotte. Mercator costruì una carta
(detta appunto di Mercatore) nella quale i meridiani sono rappresentati come linee rette tra loro parallele, dunque le curve lossodromiche sono pure rappresentate come linee rette mentre le ortodromiche vengono rappresentate come curve. Questa caratteristica la rende molto adatta al calcolo delle rotte per distanze brevi (minori di 500-1000 nm).

Fatta questa doverosa premessa, vediamo quali sono i parametri di navigazione più importanti per il calcolo della rotta:

  • Rv – Rotta vera. E’ l’angolo compreso tra la direzione del Nord e la traiettoria seguita dalla barca.
  • Percorso lossodromico in miglia – E’ la distanza percorsa dal punto di partenza e quello di arrivo tagliando i meridiani sempre con lo stesso angolo
  • Rotta iniziale quadrantale – E’ compresa in uno dei 4 quadranti, a partire da nord, oppure da sud ed è preceduta dal cardine N o S e seguita dal cardine E o W. Ha quindi un valore compreso tra 0° e 90°)
  • Percorso ortodromico in miglia – E’ l’arco di circolo massimo compreso tra i punti di partenza e di arrivo
  • Differenza percorso lossodromico-ortodromico

Il programma

screenshot del programma
screenshot del programma

Per la realizzazione del programma, ho utilizzato le formule che sono pubblicate in questo sito, in una una tabella sintetica. E’ anche possibile scaricare un foglio di calcolo Excel opportunamente predisposto all’utilizzo di queste formule. Tutti gli algoritmi che ho utilizzato nella classe che ho costruito, sono fedelmente ricavati da questo foglio di calcolo. Questo mi è stato molto utile perché mi sono potuto concentrare sul linguaggio di programmazione che per me era completamente nuovo. Inoltre ho potuto anche verificare la corrispondenza dei risultati.
Una caratterisitica di Adobe Flex è quella di mettere a disposizione un linguaggio di tag, derivato dall’XML per la rappresentazione
dell’interfaccia grafica che si chiama MXML, e un linguaggio vero e proprio di programmazione che si chiama Action script. Questo linguaggio è fortemente orientato agli oggetti perlomeno nella versione 3, ed è piuttosto rigoroso. Somiglia per alcuni aspetti a javascript e per molti altri a Java. La compilazione del progetto produce un file swf, che necessita per la sua esecuzione di una macchina virtuale (l’Actionscript Virtual Machine) questa è disponibile come plugin dei browser e si chiama Flash player. Con l’avvento di Adobe Air, è ora anche possibile creare applicazioni desktop (breve presentazione di AIR).

Potete usare il programma seguendo questo link (necessario il plugin Flash player). Il codice è disponibile facendo click con il tasto destro sull’applicazione, e selezionando dal menù la voce “view source”. Nella finestra che si apre, oltre all’esposizione del codice con syntax highlighting, è presente anche un link per poter scaricare l’intero progetto in formato compresso zip. Naturalmente, trattandosi della mia prima applicazione Flex, ci saranno sicuramente errori, …spero solo di forma! Per questo consiglio di scaricarvi anche il foglio di calcolo del navigatore Roberto Iori e fare qualche confronto sui risultati. Se trovate evidenti incongruenze, scrivetemi pure! Se invece le differenze sono molto piccole, questo può essere imputato a diversi fattori: gli arrotondamenti dei decimali, il modo in cui il processore numerico calcola i numeri in virgola mobile, ecc.

Conclusioni:

Ho cercato di unire l’utile al dilettevole, e ci sono riuscito! E’ stato dilettevole imparare cose nuove riguardo la navigazione, argomento davvero affascinante. E’ stato oltremodo utile iniziare a conoscere lo strumento di Adobe. La piattaforma è molto potente e soprattutto flessibile. Con l’ausilio di Adobe Flex Builder (che è una sorta di Eclipse modificato ad hoc) creare le interfacce grafiche con il drag’n’drop è molto semplice, inoltre l’ausilio del syntax highlighting e autocomplete fanno davvero comodo. Il builder di Adobe non è troppo costoso, soprattutto se paragonato ad altri prodotti rivali di casa Microsoft, costa 214,80 euro (Adobe Flex Builder 3 Standard). Poi, rinunciando alle comodità del builder, c’è anche a disposizione un SDK completamente gratuito.

Riferimenti ed approfondimenti: