首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLLocationDistance NaN

CLLocationDistance NaN
EN

Stack Overflow用户
提问于 2009-07-23 11:28:15
回答 3查看 3.4K关注 0票数 2

我正在尝试计算iPhone应用程序中两个坐标点之间的距离,使用

代码语言:javascript
复制
 - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location 

我看到我开始在陌生的地方得到NaN,于是用下面的硬编码值仔细调查了这件事。

代码语言:javascript
复制
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:

好的,所以我把上面的代码移到一个新的项目中(把所有的东西都放在应用程序委托中),把它循环100次,一切都很好。因此,这表明问题与项目有关,但这无助于.因为所有变量都在1函数的范围内。

解决方案:

好的,这似乎是一个模拟错误。相同的代码构建在设备上运行非常好。案子解决了,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-25 21:41:23

解决办法:

好吧,这似乎是一个模拟错误。相同的代码构建在设备上运行非常好。案件解决后,你如何向苹果提交一个bug?

票数 1
EN

Stack Overflow用户

发布于 2009-07-23 13:56:43

你是说当两个地点拥有完全相同的lat/long时,你实际上得到了NaN?哇..。

您可以做的一件事是测试反向--如果您得到了NaN,请尝试逆转两个CLLocations:

代码语言:javascript
复制
testDistance = [placeLocation getDistanceFrom: userLocation];  

并查看结果是否总是匹配的;也就是说,无论是NaN还是NaN,两者都是匹配的。

另一件要检查的事情是,当您测试时会发生什么。

代码语言:javascript
复制
testDistance = [userLocation getDistanceFrom: userLocation];  

很抱歉,这不是一个答案,但也许我们能找到更多的线索。

票数 1
EN

Stack Overflow用户

发布于 2010-05-29 21:07:02

使用distanceFromLocation:代替

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1171138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档