FUNCTION ST_Distance_Sphere does not exist in MariaDB

后端 未结 4 1452
时光取名叫无心
时光取名叫无心 2021-02-13 13:34

I want get all locations around my location but the function ST_Distance_Sphere does not work.

My query:

select *, astext(location) as locat         


        
4条回答
  •  野性不改
    2021-02-13 13:51

    For those who still need the function in MariaDB, you can create the function based on the formula

        CREATE FUNCTION `st_distance_sphere`(`pt1` POINT, `pt2` POINT) RETURNS 
        decimal(10,2)
        BEGIN
        return 6371000 * 2 * ASIN(SQRT(
           POWER(SIN((ST_Y(pt2) - ST_Y(pt1)) * pi()/180 / 2),
           2) + COS(ST_Y(pt1) * pi()/180 ) * COS(ST_Y(pt2) *
           pi()/180) * POWER(SIN((ST_X(pt2) - ST_X(pt1)) *
           pi()/180 / 2), 2) ));
        END
    

提交回复
热议问题