在實際地圖相關開發中,地圖添加大頭針或者定位往往是背景傳回給我們經緯度資訊,但是背景傳回的JSON解析完後,多數情況下,經緯度都是NSString類型
但是當需要把經緯度顯示在界面上面時候時,就需要我們做一些處理了,需求如下
上代碼:
- (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'