Um Die Distanz eines iPhone Users zu einem bestimmten Punkt zu bekommen, kann man die CLLLocation Methode getDistanceFrom wunderbar nutzen.
Vorraussetzung ist die Position des Gerätes. In der Methode
– (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
kann dann folgender Codeschnipsel genutzt werden:
// hier die gewünschten GPS Koordinaten eingeben, die Beispieldaten sind von der Infinity Loop
CLLocation *DestinationLocation = [[CLLocation alloc]initWithLatitude:37.3307060 longitude:-122.0414486];
//Distanz in m berechnen
double dist = [newLocation distanceFromLocation:festplatzlocation];
Um zu erkennen, ob der Nutzer innerhalb eines bestimmten Radiusses um einen Punkt ist, kann man eine maxdist definieren und danach darauf prüfen.
double maxdist = 3500;
if(dist<maxdist){
NSLog(@“kleiner“);
NSString *Distanzstring = [[NSStringalloc]initWithFormat:@“Distanz: %g (m)“,dist];
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:nilmessage:Distanzstring delegate:selfcancelButtonTitle:@“OK“otherButtonTitles:nil]; [alert show];
[alert release];
}else {
NSLog(@“grösser“);
}
Deprecated ist die folgende Methode / Bestimmung der Distanz
//double dist = [newLocation getDistanceFrom:festplatzlocation] / 1000;
Fertig ist eine schöne und einfache Möglichkeit, die position des Nutzer zu verwenden.
(Corelocation.Framework muss natürlich in das Projekt eingebunden sein)