Le coordinate GPS sono composte da due variabili, latitudine e longitudine, che rappresentano uno spazio tridimensionale.
Il problema dei valori di longitudine e latitudine è che non si possono semplicemente dedurre le distanze da essi.
- Lavorando su una sfera se pensiamo alla longitudine i punti molto distanti tra loro sono in realtà molto vicini.
- Un Δ(lon,lat) porterebbe a distanze diverse a seconda che ci si trovi all'equatore o ai poli.
Questa situazione può portare ad un riverbero dell'errore in particolare nei casi in cui si cerca di normalizzare/standardizzare le coordinate GPS.
Dataset di esempio
Prendiamo due città sul meridiano di Greenwich, Dunkirk in Francia e Plymouth nel Regno Unito; e due sull'equatore Libreville in Gabon e Luanda in Angola.
Se disegnamo lo scatterplot di questi 4 punti sembra che le coppie di città siano equidistanti ma approssimativamente tra Dunkirk e Plymouth ci sono circa 550 KM mentre le due città africane sono divise dal triplo dei KM.
Vediamo cosa succede se scaliamo le coordinate tra 0 e 1. A colpo d'occhio la distanza resta immutata.
Possibile soluzione
Come fare per riportare le distanze "sulla carta" a quelle reali?
Possiamo applicare una semplice trasformazione per riportare il tutto allo spazio 3D.
x = cos(lat) * cos(lon)
y = cos(lat) * sin(lon)
z = sin(lat)
N.B. se non strettamente necessaria possiamo non usare la z