Sto cercando un modo semplice per calcolare la distanza tra due punti GPS, quindi ottengo il risultato come: "Devi andare x metri su e y metri a sinistra - quindi posso lavorare con un sistema a coordinate 2d, dove ho la mia posizione come (0,0) e le altre posizioni mostra la distanza in (x, y) in metri dalla mia posizioneCalcola la distanza in (x, y) tra due punti GPS
la mia idea era quella di calcolare la distanza tra i punti utilizzando la formula haversine. (restituisce il mio ipotenusa)
In aggiunta a ciò, sto calcolando il cuscinetto tra questi due punti. Questa è la mia alfa.
Con questi due valori, ho voluto utilizzare le funzioni di trigonometria di base per risolvere il mio problema.
Così ho provato a calcolare: catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
.
Forse sto facendo qualcosa di sbagliato, ma i miei risultati sono inutili al momento.
Quindi la mia domanda è: come posso calcolare la distanza in direzione xey tra due punti GPS?
Sto calcolando alfa nella seguente procedura:
public static double bearingTo(GPSBean point1, GPSBean point2) {
double lat1 = Math.toRadians(point1.latitude);
double lat2 = Math.toRadians(point2.latitude);
double lon1 = Math.toRadians(point1.longitude);
double lon2 = Math.toRadians(point2.longitude);
double deltaLong = lon2 - lon1;
double y = Math.sin(deltaLong) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(deltaLong);
double bearing = Math.atan2(y, x);
return (Math.toDegrees(bearing) + 360) % 360;
}
come stai calcolando 'alpha'? – Barranka
Ho aggiunto il metodo per alpha;) – Frame91
@Borian No. Non è un duplicato, perché non ho bisogno della distanza diretta tra questi due punti. Conosco la formula di harversine, ma devo "camminare" nella geometria del taxi;) – Frame91