Ниже приведена матрица 3 * 4, где 2 столбца представляют координаты широты / долготы одного местоположения, а два других - координаты второго местоположения.Я пытаюсь применить формулу расстояния большого круга к каждой строке.Я почти уверен, что должен использовать что-то в семье, но не могу понять, как это сделать.
d=as.data.frame(split(as.data.frame(c( 33.43527 ,-112.01194 , 37.72139 , -122.22111, -3.78444 , -73.30833 , -12.02667 , -77.12278,37.43555,38.88333,40.97667,28.81528)* pi/180),1:4))
colnames(d)=c('lat','lon','lat2','lon2')
Это уравнение, которое я хотел бы применить к каждой из 3 строк:
sum(acos(sin(lat) * sin(lat2) + cos(lat) * cos(lat2) * cos(lon2 -lon)) * 6371)*0.62137
. Lat, lon, lat2, lon2 представляют имена столбцов в матрице d.,
Окончательный вектор будет выглядеть так:
answer = 645.0978, 626.3632, 591.4725
Любая помощь будет высоко ценится.