将字符串转换为核心位置

Posted

技术标签:

【中文标题】将字符串转换为核心位置【英文标题】:convert string to core location 【发布时间】:2014-03-20 14:31:47 【问题描述】:

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

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

以下哪个是最好的方法?

    我是否应该并计算距离 或 我是否应该将设备位置转换为字符串并计算距离。

【问题讨论】:

你怎么可能通过转换为字符串来计算距离? @Merlevede 我没有。但这里是link 说明拒绝投票的原因会有很大帮助。另外请记住,不是每个人都是专家,可能会有一些基本问题,原因可能是用户无法正确搜索(使用正确的关键字)以获得结果。 【参考方案1】:

像这样创建和对象:

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

lat1 / long2 的类型为CLLocationDegrees,它是一个双精度类型定义,表示以度为单位的点。

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

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

上面的代码在你链接的例子中,你可以很容易地用谷歌搜索这个对象,它会把你带到在线文档。

编辑:

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

这样的东西会更好:

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

【讨论】:

注意字符串是否包含本地化数字,例如使用“,”作为小数分隔符。最好使用数字格式化程序来获取双精度值。 @Volker 完全正确,我完全忘记了。编辑后的答案,我相信这是正确的代码吗? @SimonMcLoughlin 和 Volker 非常感谢您。这对我有帮助。

以上是关于将字符串转换为核心位置的主要内容,如果未能解决你的问题,请参考以下文章