Szukam gładkiego sposobu na obliczenie odległości między dwoma punktami GPS, więc otrzymuję wynik w stylu: "Musisz iść x metry w górę i y metrów w lewo - dzięki czemu mogę pracować z układem współrzędnych 2d, gdzie mam swoją pozycję jako (0,0), a pozostałe pozycje pokazują odległość w (x, y) w metrach od mojej pozycjiOblicz odległość w (x, y) między dwoma punktami GPS
Mój pomysł był aby obliczyć odległość między punktami za pomocą wzoru haversine. (ta zwraca moją przeciwprostokątną)
Poza tym, jestem obliczania łożysko pomiędzy tych dwóch punktów. to jest moja alfa.
Przy tych dwóch wartościach chciałem użyć podstawowych funkcji trygonometrycznych, aby rozwiązać mój problem.
Więc próbowałem obliczyć: catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
.
Może robię coś złego, ale moje wyniki są w tej chwili bezużyteczne.
Moje pytanie brzmi: Jak obliczyć odległość w kierunku X i Y między dwoma punktami GPS?
jestem obliczania alfa w następującej procedury:
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;
}
jak obliczasz "alfa"? – Barranka
Dodałem metodę alpha;) – Frame91
@Borian No. Nie jest to duplikat, ponieważ nie potrzebuję bezpośredniej odległości między tymi dwoma punktami. Wiem o formule harversine, ale muszę "chodzić" w geometrii taksówki;) – Frame91