2009-05-07 7 views
0

Ich habe meinen aktuellen Standort über CoreLocation festgelegt. Jetzt möchte ich diese Orte (aus einer bestehenden Datenbank), die in der Nähe (etwa 100 Fuß) sind.iPhone 3G: Wie zeigen Sie Orte um einen festen Punkt herum?

Wie starte ich?


Update: Hier ist eine Implementierung der Haversine Formel: http://www.jaimerios.com/?p=39 (sehr nützlich)

+1

Ist dies eher eine Frage "Wie berechne ich die Abstände zwischen Punkten?" Als eine spezifische iPhone/Objective-C Frage? – rjstelling

+0

Nein, ich habe darüber nachgedacht, wie ich das mit CoreLocationo lösen könnte ;-) – Stefan

+0

Gut eine Rijstellin. Denn wenn es so ist, dann hat Paul Betts deine Antwort, Stefan. – Kriem

Antwort

7

CLLocation stellt ein Verfahren hierfür:

- (CLLocationDistance)getDistanceFrom:(const CLLocation *)location

Sie werden die Breite und die Länge von jedem Ihrer Aufzeichnungen haben müssen, und dann sortiert nach der Entfernung von dieser Methode zurückgegeben.

-1

High school Geometrie FTW:

dist = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2)) 

Eines der Dinge, die Sie tun können, dies zu erleichtern In SQL Query wird die Karte in "Kacheln" aufgeteilt, dh in einen Bereich von 2 km x 2 km, so dass Sie bis zur Kachel abfragen und dann die Ergebnisse mit dieser Formel durchlaufen können.

+0

Aber ich kann diese Formel nicht für jeden meiner Standorte anwenden (es ist eine Datenbank mit ungefähr 3500 Standorten). Also dachte ich, es würde eine ressourcenfreundliche Methode geben, die in CL enthalten ist. – Stefan

+0

Dies ist kein guter Weg, da die Erde kugelförmig ist und Sie eine direkte Linienmessung für Punkt A nach Punkt b durchführen. –

+0

Er möchte Dinge wissen, die innerhalb von 100 Fuß von der aktuellen Position sind, ich glaube nicht, dass Sie sich hier um sphärische Verzerrung sorgen müssen :) –

Verwandte Themen