MapKit σχολιασμοί και την τοποθεσία του χρήστη

ψήφοι
2

Ακολούθησα αυτό το σεμινάριο για να κάνει την πρώτη μου εφαρμογή:

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

Θα ήθελα πραγματικά να μάθω πώς να ταξινομήσετε τις σημειώσεις στον πίνακα κατά σειρά απόστασης προς τον χρήστη (το πλησιέστερο σχολιασμός είναι το πρώτο στο τραπέζι) Πώς είναι δυνατόν να το κάνουμε αυτό;

Κατανοώ ότι πρέπει να χρησιμοποιήσετε το CLLocation να βρει τη θέση του χρήστη, αλλά τότε δεν έχω ιδέα.

Θα μπορούσε μία να με βοηθήσει;

Στην υγειά σας,

Σας ευχαριστούμε εκ των προτέρων για πολύ εκτίμησα τη βοήθειά σας,

EDIT: Έχω προσθέσει λεπτομέρειες:

τα δεδομένα δεν είναι σε μία συστοιχία, υλοποιείται σε RootViewController.m σε αυτή τη μορφή:

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

... και ούτω καθεξής. Πώς είναι δυνατόν να το κάνουμε τότε;

Μπορείτε να βρείτε τον πηγαίο κώδικα εδώ:

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

teddafan

Δημοσιεύθηκε 08/05/2010 στις 19:06
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
3

Σε ένα CLLocationμπορείτε να χρησιμοποιήσετε

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

για τον υπολογισμό της απόστασης ενός αντικειμένου από ένα άλλο. Σε αυτή την περίπτωση, θα ήταν κατά πάσα πιθανότητα είναι η τρέχουσα θέση του χρήστη.

Αν τα δεδομένα είναι σε ένα NSArrayπου μπορείτε να χρησιμοποιήσετε sortedArrayUsingFunctionγια να καλέσετε μια συνάρτηση βοηθός που καλεί τη μέθοδο αυτή.

Απαντήθηκε 08/05/2010 στις 19:40
πηγή χρήστη

ψήφοι
1

Loop μέσα από τα CLLocations και να βρούμε την απόσταση μεταξύ αυτών και την τρέχουσα τοποθεσία σας.

Στη συνέχεια, χρησιμοποιήστε τη δική σας αλγόριθμο ταξινόμησης για να ταξινομήσετε τις αποστάσεις που έχουν σε μια σειρά.

for (CLLocation *loc in locations) {
  [distances addobject:[currentLocation distanceFromLocation:loc]];
}
[distances sort]; /* Own sorting algorithm */
[yourTable reloadData];
Απαντήθηκε 04/03/2011 στις 08:54
πηγή χρήστη

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