Ich habe eine Klasse namens FGLocation definiert, die mit dem MKAnnotation-Protokoll konform ist. Ich habe festgestellt, dass ich die Methode distanceFromLocation: verwenden kann, die als Methode für die Klasse CLLocation definiert ist. Wie Sie unten sehen können, erstelle ich zwei temporäre CLLocation-Objekte, um die Berechnung durchzuführen, aber ich komme nicht umhin zu denken, dass ich vielleicht einen besseren / einfacheren Weg vermisse. Hat jemand einen Kommentar zu dem, was ich tue oder wie ich es besser machen könnte?
// IS THERE A BETTER WAY TO DO THIS?
FGLocation *root = [annotations objectAtIndex:counter-1];
FGLocation *leaf = [annotations objectAtIndex:counter];
CLLocation *rootLocation = [[CLLocation alloc] initWithLatitude:[root coordinate].latitude longitude:[root coordinate].longitude];
CLLocation *leafLocation = [[CLLocation alloc] initWithLatitude:[leaf coordinate].latitude longitude:[leaf coordinate].longitude];
CLLocationDistance thisDistance = [rootLocation distanceFromLocation:leafLocation];
[rootLocation release];
[leafLocation release];
NB: mein FGLocation-Objekt ist definiert als (siehe unten) Ich bemerkte in den Docs, dass ich nicht CLLocation subclassing sein sollte.
@interface FGLocation : NSObject <MKAnnotation> {