Men的博客

欢迎光临!

0%

经纬度十进制(小数)转六十进制(度分秒)的方法

#pragma mark - 经纬度单位转换

  • (NSString )stringWithCoordinateString:(NSString )coordinateString{
    //示例:118.815033
    /
    将经度或纬度整数部分提取出来 */
    int latNumber = [coordinateString intValue];//118 /** 取出小数点后面两位(为转化成’分’做准备) /
    NSArray array = [coordinateString componentsSeparatedByString:@”.”];
    /
    小数点后面部分 */
    NSString *minuteCompnetString = [array lastObject]; /** 拼接字字符串(将字符串转化为0.xxxx形式) */
    NSString *str1 = [NSString stringWithFormat:@”0.%@”, minuteCompnetString]; /** 将字符串转换成float类型以便计算 */
    float minuteNum = [str1 floatValue]; //0.815033 /** 将小数点后数字转化为’分’(minuteNum * 60) /
    float minuteNum1 = minuteNum * 60; //0.815033
    60=48.90198 /** 将转化后的float类型转化为字符串类型 */
    NSString *latStr = [NSString stringWithFormat:@”%f”, minuteNum1]; /** 取整数部分即为纬度或经度’分’ */
    int latMinute = [latStr intValue]; //48 //取秒
    /** 取出小数点后面两位(为转化成’秒’做准备) /
    NSArray secondArr = [latStr componentsSeparatedByString:@”.”];
    /
    小数点后面部分 */
    NSString *lastCompnetString = [secondArr lastObject]; /** 拼接字字符串(将字符串转化为0.xxxx形式) */
    NSString *str2 = [NSString stringWithFormat:@”0.%@”, lastCompnetString]; /** 将字符串转换成float类型以便计算 */
    float secondNum = [str2 floatValue]; //0.90198 /** 将小数点后数字转化为’分’(minuteNum * 60) /
    float secondNum1 = secondNum * 60; //0.90198
    60=54.1188 /** 将转化后的float类型转化为字符串类型 */
    NSString *latStr2 = [NSString stringWithFormat:@”%f”, secondNum1]; /** 取整数部分即为纬度或经度’分’ */
    int latSecond = [latStr2 intValue]; //54 /** 将经度或纬度字符串合并为(xx°xx’)形式 */
    NSString *string = [NSString stringWithFormat:@”%d°%d’%d’’”, latNumber, latMinute, latSecond]; return string;
    }