在pg数据库中获取俩点距离

PG数据是库是一个相对于MySQL来说更安全的开源数据库,但是在市面上对PG的使用还是比较少的,博主就结合最近的工作问题,总结一下在PG数据库中如何获取到两个坐标点之间的距离(当然,也有获取点到线,点到点的距离,下面只举例两个坐标点的距离获取方式)

在PG数据库中按照一个插件

CREATE EXTENSION earthdistance;

将上面的SQL在PG数据库中执行即可安装

安装完成这个插件之后,我们就可以在SQL中通过earth_distance关键之来获取两点的距离了
SQL如下:

select earth_distance(
	ll_to_earth (23.085862954320724,113.31410576317595),
	ll_to_earth(23.121724484059566,113.32709838364408)
) as distance;

这就是一个简单的例子,第一个坐标为维度坐标,第二个为经度坐标,在mybatis中使用的话,可自行替换掉固定参数,如

 SELECT *,
        earth_distance(ll_to_earth(#{dto.latitude}, #{dto.longitude}), ll_to_earth(latitude, longitude)) AS distance
        FROM comm_point_management
                ORDER BY distance

后面的latitude,longitude就是数据表中经纬度的字段名,这样,就能在原数据的基础上获取到当前位置最近的距离了。
好久没有更新了,以后在工作中遇到的问题,还是会和大家分享的,如果有不对的地方,请批评指正,谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值