Per un cliente abbiamo realizzato un'applicazione per iPad in grado di restituire la posizione esatta su mappe geografiche di circa 1600 scali portuali del mondo, inserendo sull'iPad il nome o le coordinate di latitudine e longitudine.
Per sviluppare l'applicazione ci siamo serviti degli strumenti che Google mette a disposizione dal lato sviluppatore, le API di Google Maps e il Geocoder, un servizio che permette di convertire un input testuale, come un indirizzo o il nome di un luogo, in coordinate geografiche e viceversa, da utilizzare per programmare applicazioni capaci di mappare e posizionare il contenuto su una mappa.
Avevamo su una tabella excel latitudine e longitudine di ogni porto espresse in gradi e le abbiamo controllate con il servizio di Google Maps (lato pubblico), che individuava con estrema precisione il porto corrispondente.
Tuttavia, nel momento in cui i dati di longitudine e latitudine venivano inseriti in Geocoder (lato sviluppatori), questo restituiva una posizione diversa e non precisa sulla mappa, cosa che invece Google Maps faceva con precisione.
Probabilmente il problema è che il Geocoder lavora con le coordinate espresse in gradi decimali (DD), e non nel formato gradi, minuti, secondi (DMS). In altre parole, ragiona così: 41.89028, 12.49248 e non così: 41° 53´ 25.008" N 12° 29´ 32.928" E
Era questo a generare errori.
La soluzione è stata quella di creare una pagina in php che convertisse le coordinate in gradi che avevamo già nel formato che ci serviva, cioè in decimali, operazione che Google Maps invece esegue automaticamente dal alto utente.
Questa la pagina, a disposizione di chi volesse usarla per convertire i dati: http://www.mycplweb.it/app-lenavi/coordinate.php (aggiungete nella barra dell'indirizzio ad esempio: ?= 15°20' E; 8°10' S e otterrete le coordinate convertite in decimali.

