Finding the distance between two points : Float « Data Type « PHP






Finding the distance between two points

 
<?php
function sphere_distance($lat1, $lon1, $lat2, $lon2, $radius = 6378.135) {
    $rad = doubleval(M_PI/180.0);
    
    $lat1 = doubleval($lat1) * $rad;
    $lon1 = doubleval($lon1) * $rad; 
    $lat2 = doubleval($lat2) * $rad;
    $lon2 = doubleval($lon2) * $rad;
    
    $theta = $lon2 - $lon1;
    $dist = acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta));
    if ($dist < 0) { $dist += M_PI; }

    return $dist = $dist * $radius;
}

$lat1 = 40.;
$lon1 = -50.;

$lat2 = 37;
$lon2 = -122;

$dist = sphere_distance($lat1, $lon1, $lat2, $lon2);
printf("%.2f\n", $dist * 0.621);
?>
  
  








Related examples in the same category

1.Addition of two floating-point variables compared to a variable can lead to an unexpected result.
2.Addition of two floating-point variables compared to a variable with the expected value result can lead to an unexpected result.
3.Compare floating-point values,avoid the == operator and use the <, >, >=, and <=.
4.Comparing float values
5.Comparing floating point numbers
6.Compound Interest
7.Continuously Compounded Interest Calculator
8.Float is converted to an integer before the binary and (&) operation is executed.
9.Floating point numbers ("doubles") can be specified using any of the following syntaxes:
10.Floating-point arithmetic:
11.the float is converted to an integer before the binary and (&) operation is executed.
12.PHP feet-to-meters converter
13.Specifying Precision
14.Storing Floating Point Numbers in PHP
15.Simple Interest
16.Calculate the area of a circle of given radius
17.Define Integer, double and string value and output them
18.Add a PHP block and create a variable that holds a floating-point number