3 votes

Trouver la direction dans l'iphone comme le nord ou etc.

J'ai un problème dans mon application : je veux connaître la direction vers la latitude et la longitude à partir de la latitude et de la longitude actuelles.

-(void)showDirection
{
 CGFloat latitude = Lat;
 if (latitude < 0) {
    latitude = -latitude;
    strDirection = @"S";
 } else {
    strDirection = @"N";
 }
 // Longitude
 CGFloat longitude = Long;
 if (longitude < 0) {
    longitude = -longitude;
    strDirection = @"W";
 } else {
    strDirection = @"E";
 }
 NSLog(@"direc %@",strDirection);
}

8voto

Dinesh Points 3334

Essayez ce code ci-dessous :

ajoutez d'abord le framework dans votre projet CoreLocation.Framework après avoir ajouté l'objet initialize CLLocationManager et importé le fichier d'en-tête CLLocationManager.

Votreviewcontroller.h

#import <CoreLocation/CoreLocation.h>
@interface Yourviewcontroller :UIViewController <CLLocationManagerDelegate>
{
      CLLocationManager *locationManager;
} 

Votreviewcontroller.m

locationManager=[[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
//Start the compass updates.
[locationManager startUpdatingHeading];

ajouter une fonction pour obtenir la direction actuelle

-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
    float mHeading = newHeading.magneticHeading;
    if ((mHeading >= 339) || (mHeading <= 22)) {
        //[direction setText:@"N"]; 

    }else if ((mHeading > 23) && (mHeading <= 68)) {
        //[direction setText:@"NE"];    

    }else if ((mHeading > 69) && (mHeading <= 113)) {
        //[direction setText:@"E"]; 

    }else if ((mHeading > 114) && (mHeading <= 158)) {
        //[direction setText:@"SE"];

    }else if ((mHeading > 159) && (mHeading <= 203)) {
        //[direction setText:@"S"]; 

    }else if ((mHeading > 204) && (mHeading <= 248)) {
        //[direction setText:@"SW"];    

    }else if ((mHeading > 249) && (mHeading <= 293)) {
       // [direction setText:@"W"];

    }else if ((mHeading > 294) && (mHeading <= 338)) {
       // [direction setText:@"NW"];

     }
}

Note : la boussole ne fonctionne que sur un vrai appareil iphone, pas sur un simulateur iphone !

-4voto

Zack Points 4868

Vous pouvez essayer LocateMe . Il vous donnera la longitude et la latéralité de la position actuelle de l'utilisateur.
Ou vous pouvez essayer de regarder ceci tutoriel

J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X