经过广泛的研究和有趣的学习Google地图API,我正在构建一个数字天线地图应用程序。在此阶段,项目计划的下一步是基于用户地址输入构建一个内存地图副本,该地图显示数字电视台的位置。因此,我使用这个数学代码来计算中心点与数据库结果集中的lat/lng点之间的方位角。
我的问题是:如何完成数学运算以显示度数方位角?
以下是返回数组结果集的数学代码:
我的问题是:如何完成数学运算以显示度数方位角?
以下是返回数组结果集的数学代码:
1.21
1.10
1.10
1.10
1.10
2.62
-0.29
-1.17
0.12
3.04
var y = Math.sin(longitude-center.lng()) * Math.cos(latitude);
var x = Math.cos(center.lat())*Math.sin(latitude) - Math.sin(center.lat())*Math.cos(latitude)*Math.cos(longitude-center.lng());
var bearing = (Math.atan2(y, x)).toFixed(2);
我的计算好像有些问题。数据库表将经度值作为负数来表示地球的西北象限。
如果有任何建议可以帮我完成这个数学问题,那就太好了,我已经烧掉了一万亿个神经元。
根据将角度转换为弧度的建议,我修改了javascript代码:
var radLat1 = center.lat() * Math.PI / 180;
var radLat2 = latitude * Math.PI / 180;
var radLng1 = center.lng() * Math.PI / 180;
var radLng2 = longitude * Math.PI / 180;
var y = Math.sin(radLng2- radLng1) * Math.cos(radLng2);
var x = Math.cos(radLat1)*Math.sin(radLat2) - Math.sin(radLat1)*Math.cos(radLat2)*Math.cos(radLng2-radLng1);
var bearing = (Math.atan2(y, x)).toFixed(2);
测试项目网站的URL:点击这里
页面底部的div是由两个数组返回的结果集,第一个数组保存距离,第二个数组保存方位角测量。