MapKit Adnotacje i lokalizacji użytkownika

głosy
2

I przestrzegać tego samouczka, aby moją pierwszą aplikację:

http://icodeblog.com/2009/12/21/introduction-to-mapkit-in-iphone-os-3-0/

Naprawdę chciałbym wiedzieć, jak rozwiązać adnotacje w tabeli w kolejności odległości użytkownika (najbliższa adnotacja jest pierwszym na stole) Jak to możliwe, aby to zrobić?

Rozumiem, że muszę użyć CLLocation znaleźć lokalizację użytkownika, ale to nie mam pojęcia.

Mógłby ktoś mi pomóc?

Twoje zdrowie,

Z góry dziękuję za pomoc bardzo cenione,

EDIT: Dodałem informacje:

dane nie są w tablicy, który jest zaimplementowany w RootViewController.m formularz zgłoszenia:

-(void)loadOurAnnotations
{
    CLLocationCoordinate2D workingCoordinate;

    workingCoordinate.latitude = 40.763856;
    workingCoordinate.longitude = -73.973034;
    iCodeBlogAnnotation *appleStore1 = [[iCodeBlogAnnotation alloc] 

    initWithCoordinate:workingCoordinate];
    [appleStore1 setTitle:@Apple Store 5th Ave.];
    [appleStore1 setSubtitle:@Apple's Flagship Store];
    [appleStore1 setAnnotationType:iCodeBlogAnnotationTypeApple];

    [mapView addAnnotation:appleStore1];

... i tak dalej. Jak to możliwe, aby to zrobić wtedy?

Można znaleźć kod źródłowy tutaj:

icodeblog.com/wp-content/uploads/2009/09/iCodeMap.zip

teddafan

Utwórz 08/05/2010 o 19:06
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
3

Na zasadzie CLLocationmożna użyć

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

obliczyć odległość obiektu od drugiego. W tym przypadku, to przypuszczalnie być aktualna lokalizacja użytkownika.

Jeśli dane są w sposób NSArraymożna użyć sortedArrayUsingFunctiondo wywołania funkcji pomocnika, który wywołuje tę metodę.

Odpowiedział 08/05/2010 o 19:40
źródło użytkownik

głosy
1

Pętla przez CLLocations i znaleźć odległość między nimi a danym miejscu.

Następnie użyć własnego algorytmu sortowania, aby posortować dystanse masz w tablicy.

for (CLLocation *loc in locations) {
  [distances addobject:[currentLocation distanceFromLocation:loc]];
}
[distances sort]; /* Own sorting algorithm */
[yourTable reloadData];
Odpowiedział 04/03/2011 o 08:54
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more