首先,我在班级中实现了位置管理器功能,并且whict工作正常,并为我提供了当前位置。从那个位置,我得到了如何从here获得位置学位。但我也无法得到方向(即北,南,东,西),我也提到this。我希望我所获得的位置以度数格式显示,如this。即位置经理给我+ 37.33019332,-122.02298792,我想要像37°19'49“ N ,-122°1'23” E 。我得到的所有东西只是不知道如何得到最后的“N”和“E”。
如果我使用CLLocation.course
,我就会得到我的指导课程。
任何帮助将不胜感激。
答案 0 :(得分:4)
这实际上非常简单。纬度从赤道0°开始,北极为90.0,南极为-90.0。基本上,如果纬度在0到90之间,那么你在北半球和南半球的纬度在0到-90之间。
经度基本上以同样的方式运作。 0°指的是本初子午线,它是贯穿格林威治,英格兰和非洲一部分的虚线。正经度高达180°指的是本初子午线以东的位置,负经度指的是本初子午线以西的地区,最高可达180°。
答案 1 :(得分: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];
}
}