PHP Math Exercises : Get the distance between two points on the earth
12. Distance Between Two Earth Points
Write a PHP function to get the distance between two points on the earth.
Pictorial Presentation:

Sample Solution:
PHP Code:
<?php
// Define a function to calculate the distance between two points given their latitude and longitude
function lat_long_dist_of_two_points($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){
// Define the value of pi
$pi = pi();
// Calculate the angular distance between the two points using Haversine formula
$x = sin($latitudeFrom * $pi/180) *
sin($latitudeTo * $pi/180) +
cos($latitudeFrom * $pi/180) *
cos($latitudeTo * $pi/180) *
cos(($longitudeTo * $pi/180) - ($longitudeFrom * $pi/180));
// Calculate the arc tangent
$x = atan((sqrt(1 - pow($x, 2))) / $x);
// Convert the angular distance to kilometers and then to miles
return abs((1.852 * 60.0 * (($x/$pi) * 180)) / 1.609344);
}
// Calculate the distance from New York to London and echo the result
echo lat_long_dist_of_two_points(40.7127, 74.0059, 51.5072, 0.1275).' mi'."\n";
?>
Output:
3458.8601748984 mi
Explanation:
In the exercise above,
- function lat_long_dist_of_two_points($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){: This line defines a function named "lat_long_dist_of_two_points()" which takes four parameters: the latitude and longitude of the first point ('$latitudeFrom', '$longitudeFrom'), and the latitude and longitude of the second point ('$latitudeTo', '$longitudeTo').
- $pi = pi();: This line assigns the value of pi to the variable '$pi'.
- The subsequent lines determine the distance between the two points using the Haversine formula. This is a method used to calculate the distance between two points on a sphere.
- return abs((1.852 60.0 (($x/$pi) * 180)) / 1.609344);: This line calculates the distance between the two points in kilometers using the Haversine formula and converts it to miles.
- echo lat_long_dist_of_two_points(40.7127, 74.0059, 51.5072, 0.1275).' mi'."\n";: This line calls the "lat_long_dist_of_two_points()" function with the latitude and longitude coordinates of New York and London as arguments, calculates the distance between them, and echoes the result in the unit "mi" (miles).
Flowchart :

For more Practice: Solve these Related Problems:
- Write a PHP function to calculate the great-circle distance between two points on Earth using the haversine formula.
- Write a PHP script to accept latitude and longitude for two locations and output the distance in kilometers and miles.
- Write a PHP program to compute the distance between two cities given their coordinates and then compare it with a predefined threshold.
- Write a PHP function to convert calculated distances from kilometers to nautical miles and display both values.
Go to:
PREV : Human-Readable Captcha String.
NEXT : PHP Classes Exercises Home.
PHP Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.