Berechnung der Entfernung (in Km) zwischen zwei Punkten im MAP

8

Ich komme zu dem kritischsten Schritt in meiner Anwendung, meine Datenbank hat eine Liste von Tankstellen (mit ihren Längen- und Breitengradkoordinaten) und ich muss den Längengrad und den Breitengrad der senden Benutzer zu einem Webservice, der versucht, mit einem Radius von 5 KM zu finden, welche Stationen sich um den Benutzer herum befinden. Gibt es einen vorgefertigten Algorithmus, der mir helfen kann, irgendwelche Vorschläge, Links oder was auch immer Sie denken, kann mir helfen, danke im Voraus :)

    
Malloc 21.04.2011, 11:42
quelle

2 Antworten

21

Sie können das CoreLocation-Framework dazu verwenden: Initialisiert ein CLLocation-Objekt für jede Ihrer Servicestationen mit Längen- und Breitengrad

%Vor%

Sobald Sie das getan haben, können Sie die distanceFromLocation-Instanzmethode von CLLocation verwenden:

%Vor%

Abstand ist der Abstand zwischen beiden Punkten in Metern (CLLocationDistance ist ein Doppel). Dann musst du es einfach durch 1000 teilen, um es in km zu bekommen; -)

Bearbeiten:

Da Sie Ihre Datenbank auf Ihrem Server haben, ist es effizienter, die Entfernung in einem Webdienst zu berechnen. Da es keine "inverse Methode" von distanceFromLocation gibt, mit der Sie eine Entfernung angeben und die mit dem aktuellen Benutzerstandort verknüpften minimalen und maximalen Breiten- und Längengrade abrufen können, müssen Sie die Berechnung auf der Serverseite durchführen.

Die Lösung wäre also, den aktuellen Standort (Breiten- und Längengrad) des Benutzers an Ihren Webdienst zu senden und ihn dazu zu bringen, die Breite und Länge Ihrer Entfernung zu berechnen (ein Quadrat ist einfacher zu berechnen und zu implementieren als a Kreis für die Tankstellen). Sie haben einige Ressourcen, um diese Berechnungen hier durchzuführen: Haversine Formel

    
Hugo Briand 21.04.2011, 13:28
quelle
3

Schauen Sie sich " Entfernung, Peilung und mehr zwischen Breiten- / Längengradpunkten an" Es bietet alles, was Sie brauchen, außer objective-c-Code: Der Algorithmus, JavaScript-Code, ein Formular zum Testen und eine Menge Informationen über das Thema.

    
Nick Weaver 21.04.2011 11:48
quelle

Tags und Links