iPhone 3G: come mostrare posizioni attorno a un punto fisso?
-
08-07-2019 - |
Domanda
Ho la mia posizione corrente riparata tramite CoreLocation. Ora voglio ottenere quelle posizioni (da un database esistente), che si trovano nelle vicinanze (circa 100 piedi) di esso.
Come inizio?
Aggiornamento: ecco un'implementazione della formula Haversine: http://www.jaimerios.com /? p = 39 (molto utile)
Soluzione
CLLocation
fornisce un metodo per questo:
- (CLLocationDistance) getDistanceFrom: (const CLLocation *) posizione
Dovrai avere la latitudine e la longitudine di ciascuno dei tuoi record, quindi ordinare in base alla distanza restituita da questo metodo.
Altri suggerimenti
FTW di geometria del liceo:
dist = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2))
Una delle cose che puoi fare per rendere più semplice questa query SQL è quella di dividere la mappa in "riquadri", ovvero un'area di 2 km x 2 km, in modo da poter eseguire una query fino al riquadro, quindi scorrere il risultati usando questa formula.