将字符串转换为核心位置

时间:2014-03-20 14:31:47

标签: ios objective-c core-location

我将纬度和经度值作为字符串,并希望将其转换为重置位置。我的主要目的是计算用户当前位置(由设备返回)与从服务器返回的位置之间的距离。

calculate distance using lat and long..这篇文章帮我找到了两个地点之间的距离。

以下哪项是最好的方式?

  1. 我应该将字符串转换为核心位置并计算距离 或
  2. 我应该将设备位置转换为字符串并计算距离。

1 个答案:

答案 0 :(得分:3)

像这样创建和对象:

CLLocation *locA = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];

lat1 / long2属于CLLocationDegrees类型,它是double的typedef,表示以度为单位的点。

将你的lat / long转换为双精度并传入它们,如下所示:

CLLocation *locA = [[CLLocation alloc] initWithLatitude:[@"" doubleValue] longitude:[@"" doubleValue] ];

上面的代码在您链接的示例中,您可以非常轻松地对该对象进行google,并且它会将您带到在线doc。

修改

根据Volker的建议,如果您从服务器获取数字,则可能存在本地化问题,其中一些本地使用小数:46.000而其他人使用逗号46,000

这样的事情会更好:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSNumber *temp = [formatter numberFromString:@""];
[temp doubleValue];