Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
|
|
@ -0,0 +1,40 @@
|
|||
/* fórmula de Haversine para distancias en una
|
||||
superficie esférica */
|
||||
|
||||
#include <basico.h>
|
||||
|
||||
#define MIN 60
|
||||
#define SEG 3600
|
||||
#define RADIO 6372.8
|
||||
#define UNAMILLA 1.609344
|
||||
|
||||
algoritmo
|
||||
|
||||
números ( lat1, lon1, lat2, lon2, dlat, dlon, millas )
|
||||
|
||||
si ' total argumentos es (9) ' // LAT1 M LON1 M LAT2 M LON2 M
|
||||
#basic{ lat1 = narg(2) + narg(3)/MIN
|
||||
lon1 = narg(4) + narg(5)/MIN
|
||||
lat2 = narg(6) + narg(7)/MIN
|
||||
lon2 = narg(8) + narg(9)/MIN }
|
||||
|
||||
sino si ' total argumentos es (13) ' // LAT1 M LON1 M S LAT2 M LON2 M S
|
||||
#basic{ lat1 = narg(2) + narg(3)/MIN + narg(4)/SEG
|
||||
lon1 = narg(5) + narg(6)/MIN + narg(7)/SEG
|
||||
lat2 = narg(8) + narg(9)/MIN + narg(10)/SEG
|
||||
lon2 = narg(11) + narg(12)/MIN + narg(13)/SEG }
|
||||
sino
|
||||
imprimir("Modo de uso:\ndist.bas La1 M [S] Lo1 M [S] La2 M [S] Lo2 M [S]\n")
|
||||
término prematuro
|
||||
fin si
|
||||
|
||||
#basic{
|
||||
dlat = sin(radian(lat2 - lat1)/2)^2
|
||||
dlon = sin(radian(lon2 - lon1)/2)^2
|
||||
RADIO*(2*arc sin(sqrt(dlat + cos(radian(lat1)) * cos(radian(lat2)) * dlon )))
|
||||
}
|
||||
|
||||
---copiar en 'millas'---, " km. (",millas,dividido por (UNA MILLA)," mi.)\n"
|
||||
decimales '2', imprimir
|
||||
|
||||
terminar
|
||||
9
Task/Haversine-formula/EasyLang/haversine-formula.easy
Normal file
9
Task/Haversine-formula/EasyLang/haversine-formula.easy
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
func dist th1 ph1 th2 ph2 .
|
||||
r = 6371
|
||||
ph1 -= ph2
|
||||
dz = sin th1 - sin th2
|
||||
dx = cos ph1 * cos th1 - cos th2
|
||||
dy = sin ph1 * cos th1
|
||||
return 2 * r * pi / 180 * asin (sqrt (dx * dx + dy * dy + dz * dz) / 2)
|
||||
.
|
||||
print dist 36.12 -86.67 33.94 -118.4
|
||||
21
Task/Haversine-formula/Gambas/haversine-formula.gambas
Normal file
21
Task/Haversine-formula/Gambas/haversine-formula.gambas
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Public deg2rad As Float = Pi / 180 ' define grados a radianes 0.01745..
|
||||
Public radioTierra As Float = 6372.8 ' radio de la tierra en km
|
||||
|
||||
Public Sub Main()
|
||||
|
||||
Print "\n Distancia de Haversine entre BNA y LAX = "; Haversine(36.12, -86.67, 33.94, -118.4, radioTierra); " km"
|
||||
|
||||
End
|
||||
|
||||
Function Haversine(lat1 As Float, long1 As Float, lat2 As Float, long2 As Float, radio As Float) As Float
|
||||
|
||||
Dim d_long As Float = deg2rad * (long1 - long2)
|
||||
Dim theta1 As Float = deg2rad * lat1
|
||||
Dim theta2 As Float = deg2rad * lat2
|
||||
Dim dx As Float = Cos(d_long) * Cos(theta1) - Cos(theta2)
|
||||
Dim dy As Float = Sin(d_long) * Cos(theta1)
|
||||
Dim dz As Float = Sin(theta1) - Sin(theta2)
|
||||
|
||||
Return ASin(Sqr(dx * dx + dy * dy + dz * dz) / 2) * radio * 2
|
||||
|
||||
End Function
|
||||
Loading…
Add table
Add a link
Reference in a new issue