Skip to content

Instantly share code, notes, and snippets.

@qawemlilo
Forked from Usse/distance.sql
Created June 9, 2018 11:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qawemlilo/af37431aaebf1a257f10eafec392b7c5 to your computer and use it in GitHub Desktop.
Save qawemlilo/af37431aaebf1a257f10eafec392b7c5 to your computer and use it in GitHub Desktop.
MySQL calculate distance between two latitude/longitude coordinates
CREATE FUNCTION `lat_lng_distance` (lat1 FLOAT, lng1 FLOAT, lat2 FLOAT, lng2 FLOAT)
RETURNS FLOAT
DETERMINISTIC
BEGIN
RETURN 6371 * 2 * ASIN(SQRT(
POWER(SIN((lat1 - abs(lat2)) * pi()/180 / 2),
2) + COS(lat1 * pi()/180 ) * COS(abs(lat2) *
pi()/180) * POWER(SIN((lng1 - lng2) *
pi()/180 / 2), 2) ));
END
--Returns the distance in kilometers, assuming a earth radius of 6,371 km.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment