Last Updated: February 25, 2016
·
9.347K
· ausi

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.

1 Response
Add your response

Incorrect result for latlngdistance(-1,-1,-2,-2)

over 1 year ago ·