GPS-Koordinaten in Grad zu berechnen Entfernungen
Auf dem iPhone, bekomme ich die Position des Benutzers in dezimal-Grad, zum Beispiel: Breite 39.470920 und Länge = -0.373192; Das ist Punkt A.
Ich brauche, um eine Linie mit einer anderen GPS-Koordinate, auch in Dezimalgrad, Punkt B. Dann berechne den Abstand (senkrecht) zwischen der Linie von A nach B und ein weiterer Punkt C.
Das problem ist, ich verwirrt mit den Werten in Grad. Ich möchte das Ergebnis in Metern an. Was die Konvertierung benötigt? Wie wird sich die endgültige Formel zur Berechnung dieser Aussehen?
- Ich habe auch das gleiche problem, und weder das eine noch das 2 Antworten hier derzeit lösen. RabinDev Antwort kam näher, aber er wusste nicht, lösen den Grad m-Konvertierungs-problem. Irgendwelche Tipps?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nutzen Sie nicht CLLocations
distanceFromLocation:
Methode? Es wird Ihnen sagen, die genaue Entfernung zwischen dem Empfänger und einem anderen CLLocation.Es ist so einfach wie das.
Dein problem ist auch das finden der kürzesten Linie zwischen einer Zeile (A,B) und den Punkt C.
Ich denke, wenn Ihr 3 CLLocations in der Nähe sind ( weniger als ein paar Kilometer voneinander entfernt), können Sie die Mathematik zu tun, "als ob" die Koordinaten sind Punkte, die auf einer einzigen Ebene, und verwenden Sie diese in C++, oder diese oder diese und verwenden nur die CLLocations "als ob" Sie wurden x-und y-Koordinaten auf einer Ebene.
Wenn Ihre Koordinaten sind weit Weg, oder exakte Genauigkeit wichtig ist dann die sphärische Gestalt der Erde kommt, und Sie brauchen, um Dinge mit großkreisentfernung und andere geometrie auf der Fläche einer Sphäre.
Swift 3.0+
Nur die Berechnung der Distanz zwischen zwei Koordinaten:
, Wenn Sie array der Standorte:
Um Abstand von der Reihe der Punkte, verwenden Sie die folgende Methode reduzieren.
Hier
locations
ist array vom TypCLLocation
.Hier finden Sie die Entfernung in Meter.