RosettaCodeData/Task/Haversine-formula/PascalABC.NET/haversine-formula.pas

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.