您好我正在使用Haversine公式的解释来根据输入的原始坐标,距离和方位计算目的地坐标:
我使用的公式是:
lat2: =ASIN(SIN(lat1)*COS(d/ER) + COS(lat1)*SIN(d/ER)*COS(brng))
lon2: =lon1 + ATAN2(COS(d/ER)-SIN(lat1)*SIN(lat2), SIN(brng)*SIN(d/ER)*COS(lat1))
在我的例子中,我使用了以下值:
lat1 = 52.239764
lat2 = -0.904089
d = 10
ER = 6371
brng = 270
找到的值是:
lat2 = 1.165765924 and lon2 = -0.903387754
使用在以下位置找到的示例时:
http://www.catalina-capri-25s.org/tech/latlongcalc.asp
值应为52.239722和-1.050833。我已经通过谷歌地图确认这是正确的,并将其视为原点位置以西10公里。
问题与弧度有关吗?
答案 0 :(得分:0)
Excel确实在其trig函数中使用弧度。我不确定VBA,但我会这么认为。因此,您需要在将公式中的度数转换为弧度之前将其转换为弧度(或将转换嵌入公式中。如果您在excel单元格公式中进行,则将:
import urllib
from urllib import request
goog_url = "https://query1.finance.yahoo.com/v7/finance/download/GOOG?period1=1501517722&period2=1504196122&interval=1d&events=history&crumb=bU42Yaj88Bt"
def download_stock_data(csv_url):
response = urllib.request.urlopen(csv_url)
csv = response.read()
csv_str = str(csv)
lines = csv_str.split("\\n")
dest_url = r'goog.csv'
fx = open(dest_url, "w")
for line in lines:
fx.write(line + "\n")
fx.close()
download_stock_data(goog_url)
答案 1 :(得分:0)
所有内容都必须以弧度为单位,因此与方位角一样,您也必须将小数度也更改为弧度,否则它将不起作用。即使用radians(lat1)和radians(lon1)。
请记住您的输出现在以弧度为单位,因此请使用度(lat2)和度(long2)进行转换