Ich suche nach einem Algorithmus, der mir eine neue Koordinate liefert, wenn man ein Längen- und Breitengradpaar und eine Vektorübersetzung in Metern in kartesischen Koordinaten (x, y) angibt. Irgendwie wie ein Reverse Haversine. Ich könnte auch mit einer Distanz- und einer Steuerkursumwandlung arbeiten, aber dies wäre wahrscheinlich langsamer und nicht so genau. Im Idealfall sollte der Algorithmus schnell sein, da ich an einem eingebetteten System arbeite. Genauigkeit ist nicht kritisch, innerhalb von 10 Metern wäre gut.
coordinate-system
algorithm
spherical-geometry
Thomas O.
quelle
quelle
Antworten:
Wenn Ihre Verschiebungen nicht zu groß sind (weniger als ein paar Kilometer) und Sie nicht an den Polen sind, verwenden Sie die schnelle und schmutzige Schätzung, dass 111.111 Meter (111.111 km) in y-Richtung 1 Grad (Breitengrad) und sind 111,111 * cos (Breitengrad) Meter in x-Richtung beträgt 1 Grad (Längengrad).
quelle
Wie Liedman in seiner Antwort sagt, sind Williams 'Luftfahrtformeln eine unschätzbare Quelle, und um die Genauigkeit bei Verschiebungen von bis zu 1 km auf 10 Metern zu halten, müssen Sie wahrscheinlich die komplexeren verwenden.
Wenn Sie jedoch bereit sind, Fehler über 10 m für Punkte mit einem Versatz von mehr als ca. 200 m zu akzeptieren, können Sie eine vereinfachte Berechnung der flachen Erde verwenden. Ich denke, die Fehler werden bei Offsets bis zu 1 km immer noch weniger als 50 m betragen.
Dies sollte zurückgeben:
quelle
Ich finde das Aviation Formulary, hier ist großartig für diese Art von Formeln und Algorithmen. Überprüfen Sie für Ihr Problem die "Lat / Long Radial und Abstand gegeben": hier
Beachten Sie, dass dieser Algorithmus für Ihre Verwendung möglicherweise etwas zu komplex ist, wenn Sie die Verwendung von Trigonometriefunktionen auf ein Minimum beschränken möchten.
quelle
Es kann sinnvoll sein, den Punkt zuerst zu projizieren. Sie könnten so etwas wie diesen Pseudocode machen:
Dabei ist (x, y) der gewünschte Versatz.
Sie müssen nicht utm verwenden, ein flaches Koordinatensystem, das in Ihrer Region sinnvoll ist.
Mit welcher Software arbeiten Sie?
quelle
Ich habe in Google Maps eine einfache benutzerdefinierte Karte erstellt, die den in der akzeptierten Antwort angegebenen Schätzalgorithmus veranschaulicht (1/111111 == 1 Meter). Sie können es hier sehen und spielen:
https://drive.google.com/open?id=1XWlZ8BM00PIZ4qk43DieoJjcXjK4z7xe&usp=sharing
quelle