← Back to blog
How to calculate the distance between two locations using JavaScript
September 25, 2021
The most popular way of calculating the distance between two points on a sphere is using the Haversine equation. If you have the coordinates (that is; longitude and latitude) of the the starting and destination locations, you can use this equation to calculate it. Here’s how to do calculate the distance in kilometers between two locations using JavaScript and the geolocation API.
By default, coordinates (gotten using the Geolocation API) are given in degrees. We need them in radians for the formula. Here’s our conversion function:
// Convert from degrees to radiansfunction degreesToRadians(degrees) {var radians = (degrees * Math.PI)/180;return radians;}
Here’s the function that does the distance calculation using coordinates (longitudes and latitudes).
// Function takes two objects, that contain coordinates to a starting and destination location.function calcDistance (startingCoords, destinationCoords){let startingLat = degreesToRadians(startCoords.latitude);let startingLong = degreesToRadians(startCoords.longitude);let destinationLat = degreesToRadians(destCoords.latitude);let destinationLong = degreesToRadians(destCoords.longitude);// Radius of the Earth in kilometerslet radius = 6571;// Haversine equationlet distanceInKilometers = Math.acos(Math.sin(startingLat) * Math.sin(destinationLat) +Math.cos(startingLat) * Math.cos(destinationLat) *Math.cos(startingLong - destinationLong)) * radius;}return distanceInKilometers;}
Now, you can the call calcDistance
function and pass it any two coordinates.
For example:
let sCoords = {latitude: 58.39343;longitude: -259.2627;}let dCoords = {latitude: 43.8394;longitude: -129.3984;}let dist = calcDistance(sCoords, dCoords)