2012-04-20 3 views
3

у меня есть одна проблема в моем приложении я хочу знать направление широты и долготы от текущего Lat & LongПоиск Направление в Iphone, как север или т.д.

-(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); 
} 
+0

Надейтесь, что эта ссылка может решить вашу проблему должным образом, http://stackoverflow.com/questions/412256/can-the-iphone-determine-if-youre-facing-north-south-east-or- west –

+0

Возможный дубликат [Как получить указания на iPhone или iPad] (http://stackoverflow.com/questions/2630789/how-to-get-directions-on-the-iphone-or-ipad) – Suhaib

ответ

7

попробовать этот код ниже:

сначала добавьте структуру в свой проект CoreLocation.Framework после добавления инициализации объекта CLLocationManager и импорта файла заголовка CLLocationManager.

Yourviewcontroller.h

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

Yourviewcontroller.m

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

функция добавить для получения направления тока

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

    } 
} 

Примечание: компас работает только реальное iphone устройство не работает в симуляторе iphone ..!

+0

thank u , этот код действительно работает – iBhavik

+0

Превосходный ответ @Dinesh .... –

+0

Добро пожаловать @DilipRajkumar! – Dinesh

-3

Вы можете попробовать LocateMe. Он даст вам длинную и латную текущую позицию пользователя.
Или попробовал бы это посмотреть tutorial

Надеюсь, это поможет!