在实际地图相关开发中,地图添加大头针或者定位往往是后台返回给我们经纬度信息,但是后台返回的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'