Данная программа считает расстояние между двумя точками с известными географическими координатами. Вычисления идут по формуле:

 

источник

 

$sim

dim fi1 as single  '  начальная координата по широте
dim fi2 as single  ' конечная координата по широте
dim ta1 as single  ' начальная координата по долготе
dim ta2 as single  ' конечная координата по долготе
'*** все координаты должны быть преобразованы в радианы


dim SIGMA as single 'разница координат по долготе
dim nst1 as single ' переменные для предварительных преобразований
dim nst2 as single
dim nst3 as single

dim result as single 'результат

'тестовые координаты
'**********
fi1=53.8798
fi2=53.0541
ta1=50.0019
ta2=51.0051
'**********

fi1 = deg2rad(fi1)
fi2 = deg2rad(fi2)
ta1 = deg2rad(ta1)
ta2 = deg2rad(ta2)

if ta2>ta1 then
sigma =ta2-ta1
else
sigma=ta1-ta2
end if

'1
Nst1 = cos(fi2)
nst2 = sin(sigma)
nst3=nst1*nst2
result=nst3^2

'2
nst1 = cos(fi1)
nst2=sin(fi2)
nst3=nst1*nst2

'3
nst1=sin(fi1)
nst2=cos(fi2)
nst1=nst1*nst2
nst2=cos(sigma)
nst1=nst1*nst2

'4
nst2=nst3-nst1
nst2=nst2^2
result = result + nst2
result=sqr(result)

'5
nst1=sin(fi1)
nst2=sin(fi2)
nst3=nst1*nst2

'6
nst1=cos(fi1)
nst2=cos(fi2)
nst1=nst1*nst2
nst2=cos(sigma)
nst1=nst1*nst2
nst3=nst3+nst1

'7
result=result/nst3
result=atn(result)
result=result*6372795 'результат в метрах


print result

end

 

 


координаты, расстояние, теорема гаверсинусов, bascom-avr

авторизация