2012-07-24 68 views
0

首先,我已经在我的班级实施了位置管理器功能,并且工作正常,并且给出了当前位置。从那个位置我得到了如何获得位置从here度。但我无法得到我所指的this的方向(即北,南,东,西)。我希望我所得到的位置可以以像this这样的方向格式显示。即位置管理员给我+ 37.33019332,-122.02298792,我想要像37°19'49“N,-122°1'23”E。我得到的所有东西只是不知道如何获得最后的“N”和“E”。 如果我为此使用CLLocation.course,我正在接受我的方向课程。 任何帮助,将不胜感激。iPhone - 我如何获得基于学位的位置的方向

回答

3

这其实很简单。纬度从赤道0°开始,北极为90.0,南极为-90.0。基本上,如果纬度介于0和90之间,则您位于北半球,南半球的纬度介于0和-90之间。

经度基本上以相同的方式工作。 0°是指经过格林威治,英格兰和非洲的一部分的想象线的主子午线。 180°以内的正经度指的是主子午线以东的地点,负经度则指主子午线以西180°以内的地区。

+0

非常感谢。不知道。 :) – 2012-07-24 07:13:36

2

使用此代码,并把CLLocationManagerDelegate在.h文件中

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
{    
    updatedHeading = newHeading.magneticHeading; 
    float headingFloat = 0 - newHeading.magneticHeading; 

    rotateImg.transform = CGAffineTransformMakeRotation(headingFloat*radianConst);  
    float value = updatedHeading; 
    if(value >= 0 && value < 23) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° N",value]; 
    } 
    else if(value >=23 && value < 68) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° NE",value]; 
    } 
    else if(value >=68 && value < 113) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° E",value]; 
    } 
    else if(value >=113 && value < 185) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° SE",value]; 
    } 
    else if(value >=185 && value < 203) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° S",value]; 
    } 
    else if(value >=203 && value < 249) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° SE",value]; 
    } 
    else if(value >=249 && value < 293) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° W",value]; 
    } 
    else if(value >=293 && value < 350) 
    { 
     compassFault.text = [NSString stringWithFormat:@"%f° NW",value]; 
    } 
    } 
+0

这将返回指南针方向。我不需要那个。无论如何感谢您的帮助。 – 2012-07-24 06:35:51

+0

@Nims但是这是不正确的,因为它返回0到360度值的NULL。 – 2013-12-06 10:30:49