Objective C - iPhone 比较 2 个 CLLocations /GPS 坐标

Posted

技术标签:

【中文标题】Objective C - iPhone 比较 2 个 CLLocations /GPS 坐标【英文标题】:Objective C - iPhone comparing 2 CLLocations /GPS coordinates 【发布时间】:2010-03-21 11:55:04 【问题描述】:

好的,多亏了 Claus Broch,我在比较两个 GPS 位置方面取得了一些进展。我需要能够说“如果当前位置等于(列表中的任何 GPS 位置)然后做点什么

我现在的代码是:

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

Infinite Loop 的模拟器 GPS 位置是什么

CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:bonusOne.latitude longitude:bonusOne.longitude];
double distance = [loc1 getDistanceFrom:newLocation];
if(distance <= 10000000) 

然后做点什么

任何小于 10000000 的数字都假定不匹配。

【问题讨论】:

【参考方案1】:

是的,您可以使用getDistanceFrom 来获取两点之间的距离。距离以米为单位。您可以使用该比较与位置管理器的当前水平精度进行比较,以确定您是否大致处于“奖励一”位置。

CLLocation *bonusLocation = [[CLLocation alloc] initWithLatitude:bonusOne.latitude longitude:bonusOne.longitude];
float distance = [bonusLocation getDistanceFrom:newLocation];
float threshold = 2 * [newLocation horizontalAccuracy]; // Or whatever you like
if(distance <= threshold) 
  // You are at the bonus location.

【讨论】:

以上是关于Objective C - iPhone 比较 2 个 CLLocations /GPS 坐标的主要内容,如果未能解决你的问题,请参考以下文章

Objective C 和点对点通信

如何从 json-rpc webservice 获取数据:iPad /iPhone / Objective C

iphone / Objective c的最佳代码片段网站是啥[重复]

iPhone/Objective C:无法删除文件

Objective C 将 int 转换为 NSString (iPhone)

如何使用 Objective C 在 iphone 中制作 .zip 文件?