使用 iPhone指南针从当前位置到麦加的角度

我有一个关于朝拜方向的问题,我正在构建一个 iPhone 应用程序,它将显示北方向和朝拜方向,我在 CLLocationManager 的帮助下显示北方向,并使用 CLHeading 将其更新为 newHeading.magneticHeading,并且我使用以下代码显示朝拜方向

我有一个关于朝拜方向的问题,我正在构建一个 iPhone 应用程序,它将显示北方向和朝拜方向,我在 CLLocationManager 的帮助下显示北方向,并使用 CLHeading 将其更新为 newHeading.magneticHeading,并且我使用以下代码显示朝拜方向

double A = MECCA_LONGITUDE - lon;
double b = 90.0 - lat;
double c = 90.0 - MECCA_LATITUDE;
NSLog(@"tan -1( sin(%f) / ( sin(%f) * cot(%f) - cos(%f) * cos(%f)))", A, b, c, b, A);
double qibAngle =  atan(sin(A) /( sin(b) * (1 / tan(c)) - cos(b) * cos(A) ));
NSLog(@"qib Angle- %f",qibAngle);
qibla.transform = CGAffineTransformMakeRotation(qibAngle * M_PI /180);

所以,在这里我得到的角度,但它不会更新的角度,当我旋转设备,任何人都可以帮助我,我知道我需要做一些事情的标题,但我不知道该怎么办?

1

我假设您发布的代码计算了当前位置的地理北和朝向麦加的方向之间的角度。

例如,假设用户位于麦加直接向西,而用户直接面向东方。由于tan返回 + /-90 度,朝拜角度必须为-90 度。现在调整应该很明显:您需要从相对于地理北(-90)的朝拜角度减去 90 度,以达到(-180)度的麦加面顺序。

简而言之,您需要“撤消”用户的偏差,并且可以通过从 qibla 角度减去用户的航向(相对于地理北)来做到这一点。

随着数学的发展,现在您需要观察航向变化并在航向变化时重新计算 qibla 角度。最后,请确保使用trueHeading属性。

1

我可能会在这个答案上失分,因为我对 ios 一无所知,但是,我相信atan returns a value in radiansCGAffineTransformMakeRotation takes it's argument in radians as well,所以不需要转换qibAngle * M_PI /180

您可能还想重新标题,因为大多数人不知道 Qibla 是什么,也不会意识到它与数学和 iOS 有关。我只是看了看,因为我听说计算麦加的正确方向是一个整洁的数学问题。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(847)
如何在android中规范化视频(mp4)文件
上一篇
CreativeSDK映像组件-IOS
下一篇

相关推荐

  • 编程绘图软件:iPhone蓝图 /素描/绘图软件

    关于编程绘图软件的问题,在iphone blueprint中经常遇到,SO 社区中是否有人知道有任何软件可以让您在 iPhone(甚至 iPad)上拖动不同的 iOS 组件来帮助制作应用程序设计的模型或蓝图?它仅用于视觉目的。它不处理代码或类似的东西。它只是用于定位和规划应用程序的外观。有人看过或使用过这样的软件吗?…

    2022-12-28 12:01:01
    0 24 27
  • 通过默认 iPhone耳机主动消除噪音

    我们想创建一个应用程序,它将使用默认的 iPhone 耳机实现主动噪音消除。也就是说,使用 iPhone 耳机 Mic 接收外部音频并进行 180 度的相移。最后,通过默认耳机扬声器播放反转的声音以消除外部声音 (主动噪音消除)。…

    2022-11-23 05:53:42
    0 23 48
  • 如何将外部相机连接到iPhone并拍摄/下载照片

    我想将外部相机连接到 iPhone(iPhone 内置的相机不足以满足我的需求),然后编写一个 iPhone 应用程序,允许我在想要拍照时向外部相机发送信号,然后立即将拍摄的照片下载到我的 iPhone 上,以便我可以将其无线发送到其他地方的服务器。…

    2022-11-11 15:16:46
    0 14 91
  • iPhone捕获会话:设置自定义帧速率

    我已经设置了一个 captureSession,现在正在尝试将帧率设置为 60。我使用的是 iPhone 12 Pro Max。…

    2022-11-11 15:16:19
    0 74 64
  • iPhone捕获会话:设置自定义帧速率

    我已经设置了一个 captureSession,现在正在尝试将帧率设置为 60。我使用的是 iPhone 12 Pro Max。…

    2022-11-11 15:16:09
    0 93 44
  • iPhone捕获会话:设置自定义帧速率

    我已经设置了一个 captureSession,现在正在尝试将帧率设置为 60。我使用的是 iPhone 12 Pro Max。…

    2022-12-13 13:49:28
    0 58 84
  • 将数据从旧iPhone传输到新iPhone后推送通知不起作用

    我将数据从 iPhone 8 传输到 iPhone 12 mini,使用 iTunes 备份 / 设备到设备迁移。我没有得到推送通知一个应用程序,我已经安装在我的旧 iPhone。我检查了该应用程序的推送通知设置,一切都像以前一样启用。我将设置切换到开 / 关,但它没有帮助。我试图注销并重新登录到该应用程序,但这也没有解决我现在想要的应用程序的推送通知。…

    2022-11-23 08:28:51
    0 92 64
  • iPhone捕获会话:设置自定义帧速率

    我已经设置了一个 captureSession,现在正在尝试将帧率设置为 60。我使用的是 iPhone 12 Pro Max。…

    2022-11-11 15:15:47
    0 57 55

发表评论

登录 后才能评论

评论列表(75条)