gpt4 book ai didi

javascript - 标题 javascript 地理位置

转载 作者:行者123 更新时间:2023-11-30 21:12:02 26 4
gpt4 key购买 nike

我想创建一个网站,其功能应该是阅读您当前的标题。

最佳答案

我假设您已经知道如何 use the JavaScript geolocation API以及如何在 JavaScript 中呈现旋转箭头,只需要帮助计算箭头应旋转的 Angular 。这个 Angular 就是azimuth之间的差异目标点与您所在位置的 Angular 和设备的罗盘航向。

要近似计算目标的方位 Angular ,您可以使用以下公式(改编自上面链接的维基百科文章):

var dx = Math.sin(lon2 - lon1);
var dy = Math.cos(lat1)*Math.tan(lat2) - Math.sin(lat1)*Math.cos(lon2 - lon1);
var azimuth = Math.atan2(dx, dy); // north = 0, increases clockwise

其中 lat1lon1 是我们当前的经纬度,lat2lon2 是经纬度目标的方位 Angular ,azimuth 是从我们当前位置看到的目标方位 Angular ,从正北顺时针方向测量。

(这个公式只是近似的,因为它假设地球是一个球体,但是与其他错误来源(例如不准确的位置和设备方向读数)相比,这个引入的错误应该可以忽略不计。如果你真的想消除甚至虽然这个小错误,您可以使用更复杂的公式计算 WGS84 椭球体的方位 Angular given in the Wikipedia article 。)

请注意,以上公式的所有输入都需要在 radians 中给出,因为这就是 JavaScript trigonometric functions预计。通常,纬度和经度以度为单位,因此您需要先将它们乘以 Math.PI/180 将它们转换为弧度。上面计算的结果也是以弧度为单位;要将其转换为度数,您需要将 azimuth 值乘以 180/Math.PI

一旦知道目标的方位 Angular 和the compass heading of the device ,您可以简单地从前者中减去后者以获得您需要旋转箭头使其指向目标的 Angular 。

关于javascript - 标题 javascript 地理位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46033649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com