MapKit Adnotările și locația utilizatorului

voturi
2

Am urmat acest tutorial pentru a face prima mea aplicație:

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

Aș dori cu adevărat să știe cum să sorteze adnotările în tabelul de la ordinea distanței pentru utilizator (cea mai apropiată adnotarea este primul pe masă) Cum este posibil să faci asta?

Am înțeles că trebuie să utilizeze CLLocation pentru a găsi locația utilizatorului, dar atunci am nici o idee.

Ar putea cineva să mă ajute?

Noroc,

Vă mulțumim anticipat pentru mult ajutor apreciat,

EDIT: Am detalii:

Datele nu sunt într-o matrice, este pus în aplicare în RootViewController.m în această formă:

-(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];

... si asa mai departe. Cum este posibil să facă acest lucru, atunci?

Puteți găsi codul sursă aici:

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

teddafan

Întrebat 08/05/2010 la 19:06
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
3

Pe o CLLocationputeți utiliza

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

pentru a calcula distanța unui obiect dintr-o alta. În acest caz, ar fi, probabil, locația actuală a utilizatorului.

În cazul în care datele sunt într - o NSArrayputeți utiliza sortedArrayUsingFunctionpentru a apela o funcție de ajutor care apelează la această metodă.

Publicat 08/05/2010 la 19:40
sursa de către utilizator

voturi
1

Buclă prin CLLocations și pentru a găsi distanța dintre ele și locația curentă.

Apoi, utilizați propriul algoritm de sortare pentru a sorta distantele pe care au într-o matrice.

for (CLLocation *loc in locations) {
  [distances addobject:[currentLocation distanceFromLocation:loc]];
}
[distances sort]; /* Own sorting algorithm */
[yourTable reloadData];
Publicat 04/03/2011 la 08:54
sursa de către utilizator

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