Android: beste Methode zum berechnen der Entfernung zwischen zwei Orten
recherchierte ich ein wenig in diesem Thema, aber es gibt viele Meinungen, die nicht genau geben ein klares Bild. Mein problem ist dieses: ich bin die Entwicklung einer gps-basierten app für Android, in denen ich möchte, um zu wissen, die Entfernung zwischen meiner aktuellen Position angegeben, die von Androiden LocationManager, und anderen Ort, in Echtzeit. Ich habe versucht, Haversine Formel, ein Gesetz der Cosinus-Formel, dann habe ich entdeckt, dass die Android-SDK bietet mir eine einfache Funktion Ort.distanceTo(Lage) - ich bin mir nicht sicher, was die Methode macht diese Funktion ausgeführt wird.
So, der Punkt ist, was gut sein wird für mich zu nutzen, in Situationen, in denen Reale Entfernung zwischen diesen beiden Orten die meisten der Zeit, nicht größer als ca. 100-200m? Vielleicht sollte ich überprüfen Vincenty-Formel? Ist es wirklich so langsam? Kann jemand bitte erklären Sie mir, was soll ich wählen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht verwenden distanceTo. Verwenden Sie die distanceBetween-Methode, wie es klingt wie Sie haben bereits die Koordinaten und das ist alles was Sie brauchen mit dieser Methode: Lage.distanceBetween() Javadoc
Blick in die Android-Quelle für distanceTo(Lage), können Sie sehen, dass das Ergebnis basiert auf der "Inverse Formel" Geodäsie:
Welche auf der Basis der "Inverse Formel" (Abschnitt 4)
Darüber hinaus werden die beiden Methoden distanceTo und distanceBetween verwenden die gleiche zugrunde liegende Methode. Sie müssen nur alternative Formen des input/output.
Für die Vollständigkeit, die vollständige Quelle dieser Berechnung ist unten enthalten, aber ich ermutige Sie, zu prüfen, den Standort der Klasse in android.Lage für sich selbst. (P. S. ich habe nicht überprüfen Sie die Richtigkeit der Android-Berechnung. Dies wäre eine gute übung!)