ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

根据两点经纬度计算出航向

2022-08-15 11:31:33  阅读:134  来源: 互联网

标签:经纬度 res 航向 var && 两点 lat lng Math


最近开发一款导航的项目需要行驶方向,这里一般是gps会给我返回航向的,但是公司老系统的数据库没有这个数据,就只能自己计算咯

getAngle(lng_a,lat_a, lng_b, lat_b){
  var a = (90 - lat_b) * Math.PI / 180;
  var b = (90 - lat_a) * Math.PI / 180;
  var AOC_BOC = (lng_b - lng_a) * Math.PI / 180;
  var cosc = Math.cos(a) * Math.cos(b) + Math.sin(a) * Math.sin(b) * Math.cos(AOC_BOC);
  var sinc = Math.sqrt(1 - cosc * cosc);
  var sinA = Math.sin(a) * Math.sin(AOC_BOC) / sinc;
  var A = Math.asin(sinA) * 180 / Math.PI;
  var res = 0;
  if (lng_b > lng_a && lat_b > lat_a) res = A;
  else if (lng_b > lng_a && lat_b < lat_a) res = 180 - A;
  else if (lng_b < lng_a && lat_b < lat_a) res = 180 - A;
  else if (lng_b < lng_a && lat_b > lat_a) res = 360 + A;
  else if (lng_b > lng_a && lat_b == lat_a) res = 90;
  else if (lng_b < lng_a && lat_b == lat_a) res = 270;
  else if (lng_b == lng_a && lat_b > lat_a) res = 0;
  else if (lng_b == lng_a && lat_b < lat_a) res = 180;
  return res;
}

  

测试下来感觉计算的精度还行  ,就先这样用吧    各位大佬有好的建议和优化可以指点一下我。

同时凑一点文字吧,不然没法发布,工作前端也有一年多了,最近感觉我在前端的发展中有点迷茫,也可能是因为今年上海经济不怎么行,让我感觉前端的发展到后边好像没有后端那么好。在起初我的想法是专注于前端,不想参与内卷去往全栈发展,但现在感觉前端的局限性很大,好像没人关心你的技术能力,感觉只要会react和vue3做项目做业务就行了,那我学习底层就感觉没什么用武之地,因为我一直感觉原生js学的足够好,对技术提升的帮助是很大的,所以我从出了学校工作到现在一直在专注学习原生js,同时也学了react和vue3,但在我的面试经历中,别人只关注我的业务能力,技术差不多就行,所以我现在在考虑要不要早点学习一下后端的东西,希望能有大佬在这方面给一些意见

 

标签:经纬度,res,航向,var,&&,两点,lat,lng,Math
来源: https://www.cnblogs.com/ljyn/p/16587594.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有