Winkel zwischen zwei GPS-Koordinaten
-
25-09-2019 - |
Frage
Ich bin in einem anderen iPhone App arbeiten, dass Anwendungen AR, und ich meine eigenen Rahmen zu schaffen, aber ich habe Probleme beim Versuch, den Winkel eines zweiten zu bekommen Koordinate in Bezug auf die aktuelle Geräteposition, weiß jemand eine gute Ressource, die mir dabei helfen könnte?
Vielen Dank im Voraus!
Lösung
Wenn die beiden Punkte sind nahe genug beieinander, und weit weg von dem Polen, können Sie einige einfache trigonometrische verwenden:
float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);
EDIT: Ich habe vergessen, dass latN
und longN
zu erwähnen - und damit dx
und dy
- kann in Grad oder Radiant sein, solange Sie Einheiten nicht mischen. angle
jedoch immer in Radiant zurückkommen. Natürlich können Sie es zurück zu Grad, wenn Sie mehrfach erhalten, indem 180 / M_PI.
Andere Tipps
Hier ist die Android-Version dieses Codes
import com.google.android.maps.GeoPoint;
public double calculateAngle(GeoPoint startPoint, GeoPoint endPoint) {
double lat1 = startPoint.getLatitudeE6() / 1E6;
double lat2 = endPoint.getLatitudeE6() / 1E6;
double long2 = startPoint.getLongitudeE6() / 1E6;
double long1 = endPoint.getLongitudeE6() / 1E6;
double dy = lat2 - lat1;
double dx = Math.cos(Math.PI / 180 * lat1) * (long2 - long1);
double angle = Math.atan2(dy, dx);
return angle;
}