postgresql 坐标距离操作

先创建几个函数

CREATE EXTENSION cube;  
CREATE EXTENSION earthdistance;

查询规定范围内

SELECT
    A . ID,
    A ."name"
FROM
    t_base_customer A
WHERE
    earth_box (
        ll_to_earth (36.702286, 119.195057),
        300.0
    ) @> ll_to_earth (A .latitude, A .longitude);

按距离排序

SELECT
    A . ID,
    A ."name",
    earth_distance (
        ll_to_earth (36.702286, 119.195057),
        ll_to_earth (A .latitude, A .longitude)
    ) AS distance
FROM
    t_base_customer A
ORDER BY
    distance ASC;

你可能感兴趣的:(数据库)