gpt4 book ai didi

javascript - 从另一点以一定方位行驶一定距离后如何获得纬度和经度?

转载 作者:行者123 更新时间:2023-12-05 04:46:03 26 4
gpt4 key购买 nike

假设我有纬度和经度坐标 [30, -87]。从那时起,我希望能够找到我在旅行后的位置,比方说以 45 度方位行驶 10 公里。

我第一次尝试解决这个问题并不像您在下面看到的那样顺利。这显然不包括单位,至少对我来说这确实是最难理解的部分。

var bearing = 45;
var distance = 10;

var position = {
"latitude": 30,
"longitude": -87
};

var newLat = Math.cos(bearing) * distance + position.latitude;
var newLon = Math.sin(bearing) * distance + position.longitude;

我假设地球半径会在某一时刻发挥作用,但我真的不知道从哪里开始,所以我们将不胜感激任何帮助。

最佳答案

我在这里使用了 python 代码:Get lat/long given current point, distance and bearing , 转换成JS代码得到答案。

代码如下:

const bearing = 45;
const bearing_rad = (bearing*Math.PI)/180;
const distance = 10;

const EARTH_RADIUS = 6378.1;

const initial_position = {
"latitude": 30,
"longitude": -87
};

const init_lat = (initial_position.latitude*Math.PI)/180;
const init_lon = (initial_position.longitude*Math.PI)/180;

const final_lat = (180/Math.PI)*(Math.asin( Math.sin(init_lat)*Math.cos(distance/EARTH_RADIUS) + Math.cos(init_lat)*Math.sin(distance/EARTH_RADIUS)*Math.cos(bearing_rad)));

const final_lon = (180/Math.PI)*(init_lon + Math.atan2(Math.sin(bearing_rad)*Math.sin(distance/EARTH_RADIUS)*Math.cos(init_lat), Math.cos(distance/EARTH_RADIUS)-Math.sin(init_lat)*Math.sin(final_lat)));

console.log(final_lat, final_lon); // 30.06350049619102 -86.96303358059173

关于javascript - 从另一点以一定方位行驶一定距离后如何获得纬度和经度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68961531/

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