天天看點

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-将經緯度轉化成度分秒格式

繼續閱讀