16 lines
592 B
Text
16 lines
592 B
Text
//pi está predefinido en Yabasic
|
|
deg2rad = pi / 180 // define grados a radianes 0.01745..
|
|
radioTierra = 6372.8 // radio de la tierra en km
|
|
|
|
sub Haversine(lat1, long1, lat2, long2 , radio)
|
|
d_long = deg2rad * (long1 - long2)
|
|
theta1 = deg2rad * lat1
|
|
theta2 = deg2rad * lat2
|
|
dx = cos(d_long) * cos(theta1) - cos(theta2)
|
|
dy = sin(d_long) * cos(theta1)
|
|
dz = sin(theta1) - sin(theta2)
|
|
return asin(sqr(dx*dx + dy*dy + dz*dz) / 2) * radio * 2
|
|
end sub
|
|
|
|
print " Distancia de Haversine entre BNA y LAX = ", Haversine(36.12, -86.67, 33.94, -118.4, radioTierra), " km"
|
|
end
|