gpt4 book ai didi

math - 知道起点和距离计算第二个点

转载 作者:行者123 更新时间:2023-12-03 09:50:22 25 4
gpt4 key购买 nike

使用纬度和经度值(A 点),我试图计算另一个 B 点,距离 A 点 X 米,距离为 0 弧度。然后显示 B 点的纬度和经度值。

示例(伪代码):

PointA_Lat = x.xxxx;
PointA_Lng = x.xxxx;
Distance = 3; //Meters
bearing = 0; //radians

new_PointB = PointA-Distance;

我能够计算两点之间的距离,但我想找到的是知道距离和方位的第二个点。

最好使用 PHP 或 Javascript。

谢谢

最佳答案

您似乎正在以米为单位测量距离 (R),并从正东逆时针方向测量 (theta)。为了您的目的(数百米),平面几何应该足够准确。在这种情况下,

dx = R*cos(theta) ; theta measured counterclockwise from due east
dy = R*sin(theta) ; dx, dy same units as R

如果从正北顺时针测量 theta(例如,罗盘方位),
dx 和 dy 的计算略有不同:
dx = R*sin(theta)  ; theta measured clockwise from due north
dy = R*cos(theta) ; dx, dy same units as R

在任何一种情况下,经度和纬度的变化为:
delta_longitude = dx/(111320*cos(latitude))  ; dx, dy in meters
delta_latitude = dy/110540 ; result in degrees long/lat

常数 110540 和 111320 之间的差异是由于地球的扁率
(极地和赤道周长不同)。

这是一个工作示例,使用了您稍后的问题中的参数:

给定起始位置在经度 -87.62788 度,纬度 41.88592 度,
找到距起始位置西北 500 米的点的坐标。

如果我们从正东逆时针测量角度,“西北”对应
到 theta=135 度。 R 为 500 米。
dx = R*cos(theta) 
= 500 * cos(135 deg)
= -353.55 meters

dy = R*sin(theta)
= 500 * sin(135 deg)
= +353.55 meters

delta_longitude = dx/(111320*cos(latitude))
= -353.55/(111320*cos(41.88592 deg))
= -.004266 deg (approx -15.36 arcsec)

delta_latitude = dy/110540
= 353.55/110540
= .003198 deg (approx 11.51 arcsec)

Final longitude = start_longitude + delta_longitude
= -87.62788 - .004266
= -87.632146

Final latitude = start_latitude + delta_latitude
= 41.88592 + .003198
= 41.889118

关于math - 知道起点和距离计算第二个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187657/

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