gpt4 book ai didi

java - 获取经度的公式

转载 作者:行者123 更新时间:2023-12-01 05:13:15 24 4
gpt4 key购买 nike

我正在使用 GIS (WGS84) 在 Java 中实现模拟。我想把我的代理人的位置转移到对方身上。纬度很简单 1 m 就是 1/111000。但我想在经度侧移动代理,我必须考虑地球曲率(我猜!)。

我在 Wiki 上找到了这个公式:a= (2*pi*r*cos(phi))/360

r  : radius
phi: latitude
a : should be the distance

我现在尝试将距离乘以 1/a,但位置不符合逻辑!

最佳答案

您的目标是计算两点之间的距离吗?

我会使用:

d(P1, P2) = ((r · pi)/180)) · cos−1 (cos(a1) · cos(a2) · cos(b1 − b2) + sin(a1) · sin(a2))

其中 d 是距离,r 是地球半径,cos-1 是反余弦,a1,a2,b1,b2 是 2 个智能体的角度

如果您知道垂直和水平距离(l 和 h),您可以简单地计算 b1 = a1 - l/(2*pi*r*cos(angleFromEquator)*360)a2 = h/(2*pi*r*360) + b2 如果您使用球坐标。

如果您位于赤道(纬度 = 0)并向东移动 1.000 公里,则最终会向东移动 ( 1.000 公里/40.000 公里 ) * 360° = 9° 。

在纬度 45° 处,则为 ( 1.000 公里/28.000 公里 ) * 360° = 12.8°

关于java - 获取经度的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11723503/

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