Skip to content

Instantly share code, notes, and snippets.

View bragil's full-sized avatar

Rogério Bragil bragil

View GitHub Profile
-- 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