Skip to content

Instantly share code, notes, and snippets.

@bragil
Last active August 29, 2015 14:11
Show Gist options
  • Save bragil/60c45b0559a1c5050cb4 to your computer and use it in GitHub Desktop.
Save bragil/60c45b0559a1c5050cb4 to your computer and use it in GitHub Desktop.
-- Haversine Formula based geodistance, calibrated for use in danish latitudes (6371 used as radius)
CREATE OR REPLACE FUNCTION service.geodistance(a point, b point)
RETURNS double precision AS
$BODY$
SELECT acos(
sin(radians($1[0]))*sin(radians($2[0])) +
cos(radians($1[0]))*cos(radians($2[0]))*cos(radians($2[1])-radians($1[1]))
)*6371 AS distance;
$BODY$
LANGUAGE sql IMMUTABLE
COST 100;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment