当前位置:首页 > 技术心得 > 正文内容

穆斯林朝拜方向计算Qibla Direction

xjtudll13年前 (2013-10-31)技术心得69470

穆斯林礼拜都是朝向麦加的“克尔白”(Kaaba)。在中国,大家都知道是向西。但是,很多人并不清楚到底是向“正”西,还是向朝西的某个角度。精确的方向该如何计算?这个问题就等同于:已知两地(其中一地是麦加)的经度,纬度,如何求方位角。学术的讲法就是大地主题算法。

大地主题算法有好几种,例如贝塞尔大地主题算法,高斯平均引数等。

在球面上有两点P1和P2,其中P1点的大地纬度φ1,大地经度λ1,P2点的大地纬度φ2,大地经度λ2;P1和P2点间的大圆弧长为σ,P1和P2的方位角为α1,其反方位角为α2。

球面上大地主题正解是已知φ1,α1,σ,要求φ2, α2及经差λ(λ=λ2-λ1);反解是已知φ1,φ2及经差λ,要求σ,α1及α2。

未命名  

  大地主题  P是真北

对于朝拜方向的计算,是大地主题的反解。

其中P2点是麦加,经纬度是:λ2=39.82°,φ2=21.42°

当然我们不需要计算弧长σ,只需要计算方位角α1。计算公式如下:

sshot-6    

注:λ2,φ2是麦加的经纬度:λ2=39.82°,φ2=21.42°

这里算出来的是方位角的正切值,还要将其转换成0~360的角度值。

(1) p>0,q>0

α1=arctan(|p/q|)

(2) p>0,q<0

α1=180-arctan(|p/q|)

(3) p<0,q>0

α1=180+arctan(|p/q|)

(4) p<0,q<0

α1=360- arctan(|p/q|)

(5) p=0,q>0

    α1=0

(6) p=0,q<0

    α1=180

(7) p>0,q=0

    α1=90

(8) p<0,q=0

    α1=270  

很明显,朝拜方向是相对于正北来的。那么,首先要知道正北在哪里。配合指南针来使用是个好办法。需要注意的是,指南针是指向磁北的,磁北和真北不是重合的,有个磁偏角。  

参考文献:

1、贝塞尔大地主题反解的改进算法   史国友等

2、Qibla Direction

http://moonsighting.com/qibla.html  

可从网页查看源代码,内有计算的过程 

3、白塞尔大地主题解算方法ppt(从百度文库下载)

4、islamicfinder

http://www.islamicfinder.org/  

    该网站提供穆斯林软件下载,软件功能包括祈祷时间,祈祷方位角等等。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/289/

标签: 穆斯林算法
分享给朋友:

“穆斯林朝拜方向计算Qibla Direction” 的相关文章

DBNull.Value(数据库写入NULL)与null

DBNull.Value,, 适用于向数据库的表中插入空值。 null,是指在程序中表示空引用。 或者对象为空。就是没有实例化。 如果要向数据库写NULL,应该写入的是DBNull.Value,而不是直接赋值null。...

ZBlog 1.8 ASP转PHP

ZBlog 1.8 ASP转PHP

ZBlog 1.8 ASP转PHP版本过程第一步:将ZBlog升级到2.x版本,因为只有2.x才支持【ZBlog PHP转换工具】需要注意的是:官方下载最新的ASP版本里面没有zb_update18to20这个文件夹,需要从GitHub(https://github.com/zblogcn/zblo...

PWM实现ADC和DAC

PWM实现ADC和DAC

一、PWM实现AD 利用普通单片机的2个IO及一个运算放大器即可实现AD转换电路,而且很容易扩展成多通道。其占用资源少,成本低,AD转换精度可以达到8位甚至更高,因此具有一定的实用价值。 图1 1.1 硬件电路说明 图一中“RA0”和“RA1”为单片机的两个I/O脚,分别将其设置为输出...

群晖Apache 忽略文件名大小写

群晖Apache 忽略文件名大小写

参考资料:https://www.cnblogs.com/shipment/p/14767848.html 1、SSH登录群晖ssh  admin@201.201.201.1682、修改conf文件权限为777sudo chmod 777 /volume1/@appstore/Apache...

win7升级win10提示丢失api-ms-win-core-libraryloader-|1-1-1.dll

win7升级win10提示丢失api-ms-win-core-libraryloader-|1-1-1.dll

Win7 64bit 从win7升级到win10,到98%的时候提示说丢失.dll 解决办法: 用C:\Windows\System32\wimgapi.dll替换C:\Windows10Upgrade\wimgapi.dll即可 然后重新升级(由于相关文件已经下载好了,所以重新升级还是比较快的)...

远程桌面登录没有许可证解决方案(强行跳过)

远程桌面登录没有许可证解决方案(强行跳过)

在远程连接时有时会出现没有提供许可证、远程会话已断开问题。 这时通过命令行   mstsc /v: ip /admin  即可进行连接 ip为远程桌面ip。 举例:mstsc /v: 201.201.201.66 /admin...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。