天天看点

iOS-将经纬度转化成度分秒格式

在实际地图相关开发中,地图添加大头针或者定位往往是后台返回给我们经纬度信息,但是后台返回的JSON解析完后,多数情况下,经纬度都是NSString类型

iOS-将经纬度转化成度分秒格式

但是当需要把经纬度显示在界面上面时候时,就需要我们做一些处理了,需求如下

iOS-将经纬度转化成度分秒格式

上代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    /** 后台返回纬度或经度字符串 */
    NSString *latString = @"123.456789";
    /** 调用将经纬度转化成度分秒的方法 */
    NSString *str = [self stringWithCoordinateString:latString];
    NSLog(@"%@", str);
}
           
/** 经纬度转换成度分秒格式 */
- (NSString *)stringWithCoordinateString:(NSString *)coordinateString
{
    /** 将经度或纬度整数部分提取出来 */
    int latNumber = [coordinateString intValue];
    
    /** 取出小数点后面两位(为转化成'分'做准备) */
    NSArray *array = [coordinateString componentsSeparatedByString:@"."];
    /** 小数点后面部分 */
    NSString *lastCompnetString = [array lastObject];
    
    /** 拼接字字符串(将字符串转化为0.xxxx形式) */
    NSString *str1 = [NSString stringWithFormat:@"0.%@", lastCompnetString];
    
    /** 将字符串转换成float类型以便计算 */
    float minuteNum = [str1 floatValue];
    
    /** 将小数点后数字转化为'分'(minuteNum * 60) */
    float minuteNum1 = minuteNum * 60;
    
    /** 将转化后的float类型转化为字符串类型 */
    NSString *latStr = [NSString stringWithFormat:@"%f", minuteNum1];
    
    /** 取整数部分即为纬度或经度'分' */
    int latMinute = [latStr intValue];
    
    /** 将经度或纬度字符串合并为(xx°xx')形式 */
    NSString *string = [NSString stringWithFormat:@"%d°%d'", latNumber, latMinute];
    
    return string;
}
           

结果:

转化后的经纬度是123°27'

iOS-将经纬度转化成度分秒格式

继续阅读