我将纬度和经度值作为字符串,并希望将其转换为重置位置。我的主要目的是计算用户当前位置(由设备返回)与从服务器返回的位置之间的距离。
calculate distance using lat and long..这篇文章帮我找到了两个地点之间的距离。
以下哪项是最好的方式?
答案 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];