MapKit Anmerkungen und Benutzer Lage

stimmen
2

Ich folgte diesem Tutorial meine erste app zu machen:

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

Ich möchte wirklich wissen, wie man die Benutzer die Anmerkungen in der Tabelle in der Reihenfolge der Entfernung zu sortieren (die nächste Anmerkung ist der erste auf dem Tisch) Wie ist es möglich, das zu tun?

Ich verstehe, dass ich die CLLocation verwenden müssen, den Standort des Benutzers zu finden, aber dann habe ich keine Ahnung.

Könnte jemand mir helfen?

Prost,

Vielen Dank im Voraus für Ihre sehr geschätzte Hilfe,

EDIT: Ich habe hinzugefügt Details:

die Daten sind in einem Array nicht, wird es in dieser Form in RootViewController.m implementiert:

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

... und so weiter. Wie ist es möglich, es dann zu tun?

Sie können den Quellcode finden Sie hier:

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

teddafan

Veröffentlicht am 08/05/2010 um 19:06
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
3

Auf einem CLLocationkönnen Sie verwenden

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

die Entfernung eines Objekts von einem anderen zu berechnen. In diesem Fall wäre es vermutlich der aktuelle Standort des Benutzers.

Wenn die Daten in einem ist NSArraykönnen Sie verwenden sortedArrayUsingFunctioneine Hilfsfunktion aufzurufen , die diese Methode aufruft.

Beantwortet am 08/05/2010 um 19:40
quelle vom benutzer

stimmen
1

Schleife durch die CLLocations und finden Sie den Abstand zwischen ihnen und der aktuellen Position.

Dann Ihren eigenen Sortieralgorithmus verwenden, um die Abstände zu sortieren Sie in einem Array haben.

for (CLLocation *loc in locations) {
  [distances addobject:[currentLocation distanceFromLocation:loc]];
}
[distances sort]; /* Own sorting algorithm */
[yourTable reloadData];
Beantwortet am 04/03/2011 um 08:54
quelle vom benutzer

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