0
点赞
收藏
分享

微信扫一扫

js获取两个经纬度之间的角度(0度-360度)

非衣所思 2022-04-24 阅读 52
javascript

js获取两个经纬度之间的角度(0度-360度)

function 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;
			}
举报

相关推荐

0 条评论