根据两点经纬度计算出航向
作者:互联网
最近开发一款导航的项目需要行驶方向,这里一般是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