将字符串转换为objective-C中的坐标

时间:2014-04-08 17:00:30

标签: objective-c string location coordinates

我有一些坐标,我用以下代码转换成一个字符串:

 label3.text = [NSString stringWithFormat:@"%f%f",
               venue.location.coordinate.latitude,
               venue.location.coordinate.longitude];

但是,我现在想要将字符串转换回lat和long坐标。我该怎么做?

2 个答案:

答案 0 :(得分:1)

您不能这样做,因为您的代码没有在值之间提供分隔符。因此,你无法弄清楚是否有一个字符串

12.3456.78

是下面的一对:

12.3 456.78
12.34 56.78
12.345 6.78
12.3456 .78

为了使转换可逆,请使用@"%f %f"格式(带空格)。现在,您可以使用许多不同的方法从字符串中解析数据 - 例如,sscanf

float lat, lon;
sscanf([label3.text UTF8String], "%f %f", &lat, &lon);

答案 1 :(得分:0)

如果您使用分隔符分隔浮点数,请执行以下操作:

label3.text = [NSString stringWithFormat:@"%f;%f",
               venue.location.coordinate.latitude,
               venue.location.coordinate.longitude];

然后

CGPoint yourPoint=CGPointMake((NSString*)([[label3.text componentsSeparatedByString:@";"] 
firstObject]).floatValue,(NSString*)([[label3.text componentsSeparatedByString:@";"] lastObject]).floatValue)
//yourPoint.x is latitude, yourPoint.y is longitude