查找设备是不是指向正确的航向/方向?

Posted

技术标签:

【中文标题】查找设备是不是指向正确的航向/方向?【英文标题】:Find if device is pointing in the right heading / direction?查找设备是否指向正确的航向/方向? 【发布时间】:2011-08-17 10:40:28 【问题描述】:

我想查找到某个位置的距离以及设备相对于该位置的前进方向。我已经确定了距离,但不知道如何找到位置。

_theLocation = [[CLLocation alloc]initWithLatitude:-41.561004 longitude:173.849030];

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

    CLLocationDistance meters = [newLocation distanceFromLocation:_theLocation] * 0.000621371192;


- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

    NSString *str = [NSString stringWithFormat:@"Heading = %.f", newHeading.trueHeading];  
  

是否可以从我们的位置找到前往_theLocation 的标题?

【问题讨论】:

您需要计算两个坐标之间的“方位角”。它没有内置函数,所以需要自己编写。见this 和this。 感谢您查看这些链接。 【参考方案1】:

您不能简单地在两个实例中捕获设备的位置并找出该位置的方向吗?

不是一个完整的解决方案,但假设设备仅沿着连接设备和位置的线移动,您可以使用– distanceFromLocation:。如果您在两个实例中捕获到该位置的距离并查看后者的值是否小于前者,则可以推断设备已移近该位置。

实际上,从您的问题来看,您似乎想确定设备是否已移近该位置(而不是确切的方向,例如 N 或 NE)。如果是这种情况,那么这应该可以工作。

HTH,

阿克谢

【讨论】:

这就是问题所在。你如何在 Objective-C 中做到这一点? 是的,它并没有靠得更近,它指向了位置的方向 在这种情况下,Anna 的评论才是正确的选择。

以上是关于查找设备是不是指向正确的航向/方向?的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap - 以度数和磁场为单位的设备方向

使用原始加速度计和磁力计数据计算磁航向

如何在 Xamarin.Android 中获取指南针方向

从度数获取方向

将指南针的航向计算到特定坐标而不是北

在android中查找设备的相对方向