gpt4 book ai didi

iphone - CL位置距离 NaN

转载 作者:行者123 更新时间:2023-12-03 21:13:33 28 4
gpt4 key购买 nike

我正在尝试使用以下方法动态计算 iPhone 应用程序中两组坐标点之间的距离

 - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location 

我发现我开始在奇怪的地方得到 NaN,因此使用以下硬编码值仔细调查了此事。

CLLocationDistance testDistance;
placeLocation = [[CLLocation alloc] initWithLatitude:12.236533 longitude:11.011419];
userLocation = [[CLLocation alloc] initWithLatitude:12.236533 longitude:11.011419];
testDistance = [userLocation getDistanceFrom:placeLocation];
if(isnan(testDistance))
NSLog(@"ISNaN!");

[placeLocation release];
[userLocation release];

上面的代码会被多次调用,并且在某些情况下 testDistance 为 NaN。

我担心我在这里遗漏了一些非常简单的东西。大家有什么想法吗?

更新1:

好的,我已将上述代码移至一个新项目中(将所有内容放入应用程序委托(delegate)中),循环 100 次,一切正常。因此,这表明问题与项目相关,但这没什么帮助......因为所有变量都在 1 个函数的范围内。

解决方案:

好的,这似乎是模拟器错误。相同的代码构建在设备上运行得非常好。案件已解决。

最佳答案

您是说,当两个位置具有完全相同的纬度/经度时,您实际上会得到 NaN 吗?哇...

您可以做的一件事是测试相反的情况 - 如果您确实得到 NaN,请尝试反转两个 CLLocation:

testDistance = [placeLocation getDistanceFrom: userLocation];  

并查看结果是否始终匹配;即,两种方式都始终为 NaN,或者两种方式都为 NOT NaN。

另一件事要检查的是测试时会发生什么

testDistance = [userLocation getDistanceFrom: userLocation];  

很抱歉,这不是答案,但也许我们可以得到更多线索。

关于iphone - CL位置距离 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171138/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com