Skip to content

Instantly share code, notes, and snippets.

@jdaily
Created November 23, 2014 02:13
Show Gist options
  • Save jdaily/b99ee42c3e260bdb53dd to your computer and use it in GitHub Desktop.
Save jdaily/b99ee42c3e260bdb53dd to your computer and use it in GitHub Desktop.
MySQL GIS HAVERSINE
MySQL
CREATE DEFINER=`root`@`localhost` FUNCTION `HAVERSINE`(`coord1` POINT, `coord2` POINT) RETURNS double
NO SQL
BEGIN
DECLARE dist DOUBLE;
SET dist = ACOS( COS( radians( X( coord1 ) ) ) * COS( radians( Y( coord1 ) ) ) * COS( radians( X( coord2 ) ) ) * COS( radians( Y( coord2 ) ) ) + COS( radians( X( coord1 ) ) ) * SIN( radians( Y( coord1 ) ) ) * COS( radians( X( coord2 ) ) ) * SIN( radians( Y( coord2 ) ) ) + SIN( radians( X( coord1 ) ) ) * SIN( radians( X( coord2 ) ) ) ) * 6372.8;
RETURN dist;
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment