20 lines
431 B
ObjectPascal
20 lines
431 B
ObjectPascal
const
|
|
r = 6372.8;
|
|
|
|
function haversine(lat1, lon1, lat2, lon2: real): real;
|
|
begin
|
|
var dLat := degToRad(lat2 - lat1);
|
|
var dLon := degToRad(lon2 - lon1);
|
|
lat1 := degToRad(lat1);
|
|
lat2 := degToRad(lat2);
|
|
|
|
var a := sin(dLat / 2) * sin(dLat / 2) + cos(lat1) * cos(lat2) * sin(dLon / 2) * sin(dLon / 2);
|
|
var c := 2 * arcsin(sqrt(a));
|
|
|
|
result := r * c;
|
|
end;
|
|
|
|
begin
|
|
haversine(36.12, -86.67, 33.94, -118.40).Println;
|
|
end.
|