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

穆斯林朝拜方向计算Qibla Direction

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

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

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

在球面上有两点P1P2,其中P1点的大地纬度φ1,大地经度λ1P2点的大地纬度φ2,大地经度λ2P1P2点间的大圆弧长为σ,P1P2的方位角为α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>0q>0

α1=arctan(|p/q|)

2p>0q<0

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

3 p<0q>0

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

4 p<0q<0

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

5 p=0q>0

    α1=0

6 p=0q<0

    α1=180

7 p>0q=0

    α1=90

8 p<0q=0

    α1=270  

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

参考文献:

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

2Qibla Direction

http://moonsighting.com/qibla.html  

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

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

4islamicfinder

http://www.islamicfinder.org/  

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

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

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

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

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

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

利用Excel绘制时序波形

利用Excel绘制时序波形

以Excel2007为例。 打开Excel,点击绘制表格边框按钮,如图所示。 利用“绘图边框”,按照自己的想法绘制波形,如下图所示。 拷贝波形,粘贴到Word。...

魅族Flyme7不显示logcat

魅族Flyme7不显示logcat

设置 -> 辅助功能 -> 开发者选项 -> Flyme扩展功能 -> 性能优化 -> 高级日志输出 -> 全部允许 没有开发者选项的先去系统设置里将开发者选项给点出来...

VS2010:资源视图里看不到资源,提示在另一个编辑器中打开

VS2010:资源视图里看不到资源,提示在另一个编辑器中打开

问题: VS2010 MFC对话框编程 资源视图里面的内容看不到了,提示“在另一个编辑器中打开” 原因: 一般这种情况是打开了头文件中的resource.h造成的, 解决办法: 关闭resource.h,在资源视图中重新打开即可。 (双击.rc再双击)...

Google地图测距

Google地图测距

百度地图上有个测距功能,还是挺好用的。但百度地图有个缺点,没法看国外的东西,国外地图只显示了国家和首都,信息太匮乏了。 今天要测量欧洲两个城市的直线距离,百度不好使了,Google上默认又没有测距功能,搜了半天,找到了方法。 步骤如下: 1、在浏览器中输入http://ditu.google.cn/...

运放芯片不用的输入端的处理

本文转载自21IC论坛。 对于数字器件,尤其是CMOS器件,不用的输入端不能悬空,这个道理好像已经尽人皆知了。至少在21IC,时不时就会有人发帖让大家“温习”这个问题。但对于模拟器件,好像认识还有些模糊。 就以运放为例。多运放芯片中不用的运放怎么处理,好像是新手们的一个共同疑问。(有这个疑问是好...

金蝶K3 业务预警无法自动发送-自定义报表SQL语句发布到业务预警,无法自动发送出来

客户问题:业务预警无法自动发送:客户自己写的自定义报表SQL语句发布到业务预警,无法自动发送出来 解决方案:在客户的语句前加上:set nocount on 即可...

发表评论

访客

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