gpt4 book ai didi

formula - 球形余弦定律公式

转载 作者:行者123 更新时间:2023-12-01 13:00:30 32 4
gpt4 key购买 nike

我正在尝试根据另一个点的经度计算一个点的经度。它们具有相同的纬度,并且它们之间的距离是已知的。我尝试使用余弦的特殊定律公式。

# 'lat' short for 'latitude', 'lng' short for 'longitude'.
# EARTH_RADIUS = 6371000.0, unit is meter.
#
distance = Math.acos( Math.sin(lat1)*Math.sin(lat2) +
Math.cos(lat1)*Math.cos(lat2) *
Math.cos(lng2-lng1)) * EARTH_RADIUS

如果两点的纬度相等(lat1 == lat2),我可以通过距离从 lng1 计算 lng2。所以我从余弦的特殊定律公式推导公式

# lat1 == lat2 == lat
# 'distance' and 'lng' are known
lng2 = Math.acos((Math.cos(distance/EARTH_RADIUS) - Math.sin(lat)*Math.sin(lat))/(Math.cos(lat)*Math.cos(lat))) + lng

除某些情况外,此公式非常有效。

喜欢

lat_degrees =  -89.8345981836319  
lng_degrees = 96.42309331893921
lat = lat1 = lat2 = (lat_degrees * Math::PI)/180 # -1.567909520510494
lng = (lng_degrees * Math::PI)/180 # 1.682900453373236
distance = 67544.06725769254

这将显示错误

Math::DomainError: Numerical argument is out of domain - "acos"

因为Math.acos(value)中的值等于-2.5100189069914602,小于-1。我对此一无所知。推导形式是否错误?

最佳答案

你的公式没有问题。我没有做计算,但我想重点是你(非常!!)靠近南极,基本上没有两个点相距这么远。

关于formula - 球形余弦定律公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323545/

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