iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Objective C / iPhone比较2个CLLocations / GPS坐标大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

有一个应用程序可以成功找到您的GPS位置,但我需要能够将该GPS与GPS位置列表进行比较,如果两者相同,那么您将获得奖励. 我以为我有它工作,但似乎没有. 我有’newLOCATIOn’作为你所在的位置,我认为问题是我需要能够分离newLOCATIOn的long和lat数据. 到目前为止,我试过这个: NSString *latitudeVar = [[NSString alloc] initWi
一个应用程序可以成功找到您的GPS位置,但我需要能够将该GPS与GPS位置列表进行比较,如果两者相同,那么您将获得奖励.

我以我有它工作,但似乎没有.

我有’newLOCATIOn’作为你所在的位置,我认为问题是我需要能够分离newLOCATIOn的long和lat数据.

到目前为止,我试过这个:

NSString *latitudeVar = [[NSString alloc] initWithFormat:@"%g°",newLOCATIOn.coordinate.latitude];

NSString *longitudeVar = [[NSString alloc] initWithFormat:@"%g°",newLOCATIOn.coordinate.longitude];

GPS位置列表的示例:

LOCATIOn:(CLLOCATIOn*)newLOCATIOn;

CLLOCATIOnCoordinate2D bonusOne;    

bonusOne.latitude = 37.331689;
bonusOne.longitude = -122.030731;

然后

if (latitudeVar == bonusOne.latitude && longitudeVar == bonusOne.longitudE) {
    UIAlertView *alert = [[UIAlertView alloc] initWithtitle:@"infinite loop firday" message:@"infloop" delegate:nil cancelButtontitle:@"STinky" otherButtontitles:nil ];    

    [alert show];
    [alert release];
}

这会产生一个错误’无效操作数到二进制==有strut NSString和CLLOCATIOndegrees

有什么想法吗?

解决方法@H_616_45@
通常,您应该小心直接比较浮点数.由于它们的定义方式,内部值可能与初始化它们不完全相同,这意味着它们很少相同.相反,您应该检查它们之间的差异是否低于某个阈值

if(fabs(latitude1 - latitude2) <= 0.000001)
...

另一种选择可以是通过计算距离来检查人与所需位置的距离.这也可以虑到GPS的坐标不完全正确的事实,但即使在良好的条件下也可能相差10米:

CLLOCATIOn *loc1 = [[CLLOCATIOn alloc] initWithLatitude:lat1 longitude:lon1];
double distance = [loc1 getDistanceFrom:position2];
if(distance <= 10)
...

克劳斯

大佬总结

以上是大佬教程为你收集整理的Objective C / iPhone比较2个CLLocations / GPS坐标全部内容,希望文章能够帮你解决Objective C / iPhone比较2个CLLocations / GPS坐标所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。