Calcular la distancia lineal (en kms) entra dos puntos geograficos directamente en MariaDB:
Formula de cálculo de distancia entre 2 puntos geográficos:
distancia = acos(sin(radians(lat1)) * sin(radians(lat2)) +
cos(radians(lat1)) * cos(radians(lat2)) *
cos(radians(lng1) - radians(lng2))) * 6378;
Crear funcion en MariaDB (o MySQL):
CREATE FUNCTION distancia (lat1 float,lng1 float, lat2 float, lng2 float) RETURNS float
BEGIN
set @dist = (acos(sin(radians(lat1)) * sin(radians(lat2)) +
cos(radians(lat1)) * cos(radians(lat2)) *
cos(radians(lng1) - radians(lng2))) * 6378);
RETURN @dist;
END
Llamar a esta función:
select distancia(-35.4307073,-71.6517769,-33.4517812,-70.6784224) as distancia
Resultado: 237.71774291992188
Saludos.