Skip to content

Instantly share code, notes, and snippets.

@grundmanise

grundmanise/haversine.js

Last active Jun 5, 2017
Embed
What would you like to do?
Get distance between two points (return distance in meters)
const calculateDistance = (pointA, pointB) => {
// http://www.movable-type.co.uk/scripts/latlong.html
const lat1 = pointA.coordinate.latitude;
const lon1 = pointA.coordinate.longitude;
const lat2 = pointB.coordinate.latitude;
const lon2 = pointB.coordinate.longitude;
const R = 6371e3; // earth radius in meters
const φ1 = lat1 * (Math.PI / 180);
const φ2 = lat2 * (Math.PI / 180);
const Δφ = (lat2 - lat1) * (Math.PI / 180);
const Δλ = (lon2 - lon1) * (Math.PI / 180);
const a = (Math.sin(Δφ / 2) * Math.sin(Δφ / 2)) +
((Math.cos(φ1) * Math.cos(φ2)) * (Math.sin(Δλ / 2) * Math.sin(Δλ / 2)));
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
const distance = R * c;
return distance; // in meters
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment