xy-koordinaten in long/lat umrechnen
-
guten tag,
ich habe eine stelle auf der erde als meinen ursprung in form von xy-koordinate (0,0) und zusätzlich habe ich noch eine orientierung (richtungsvektor) in richtung norden. von dieser koordinate kenne ich die longitude/latitude-werte. aber wie kann ich zu einer beliebigen xy-koordinate die passenden long/lat-werte errechnen? die erdkrümmung brauche ich nicht zu berücksichtigen!
soweit ich das verstanden habe, muss ich den winkel, ausgehend vom erdrmittelpunkt zwischen ursprung und gesuchtem punkt nehmen um die long/lat-differenz zu berechnen?!
das klingt mir leider etwas unklar, daher die frage ob sich da jemand mit auskennt und mir mal einen tipp geben kann, komme da gerade nicht weiter. später muss ich das dann in c++ umsetzen.
besten dank
-
okay, ich habs geknackt...
gegeben waren x, y, z, longNull/latNull (je an stelle 0), rE (erdradius), alpha (0, da richtung norden)
gesucht wurden long/lat zu einer beliebigen xyz-koordinate (s.o.)erst mal drehen
x1 = x * cos(alpha) - y * sin(alpha)
y1 = x * sin(alpha) + y * cos(alpha)
z1 = 0 - rEx2 = x1
y2 = y1 * cos(latNull) - z1 * sin(latNull)
z2 = y1 * sin(latNull) + z1 * cos(latNull)x3 = x2 * cos(longNull) - z2 * sin(longNull)
y3 = y2
z3 = x2 * sin(longNull) + z2 * cos(longNull)neuer radius bzw. länge
r1 = sqrt(x3^2)
l = z3
longitude = acos(-l/r1) * sgn(x3)neuer radius bzw. breite
r2 = sqrt(x3^2 + y3^2 + z3^2)
b = sqrt(x3^2 + z3^2)
latitude = acos(b/r2) * sgn(y3)grüße