登录
首页 >  数据库 >  MySQL

JOOQ框架下 实现 mysql 中 计算 两点 经纬度 之间的距离

来源:SegmentFault

时间:2023-01-29 08:26:12 387浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《JOOQ框架下 实现 mysql 中 计算 两点 经纬度 之间的距离》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

原计算公式如下:

公式如下,单位米:

第一点经纬度:lng1 lat1
第二点经纬度:lng2 lat2

round(6378.1382asin(sqrt(pow(sin((lat1pi()/180-lat2pi()/180)/2),2)+cos(lat1pi()/180)cos(lat2pi()/180)pow(sin( (lng1pi()/180-lng2pi()/180)/2),2)))*1000)

在JOOQ框架下实现代码如下:

DSL.round(DSL.asin(DSL.sqrt(DSL.power(DSL.sin((DSL.pi()
        .multiply(latitude)
        .divide(180)
        .subtract(DSL.pi()
                .multiply(UC_ORGAN_SHOP.DIMENSION)
                .divide(180))).divide(2)), 2)
        .add(
                DSL.cos(DSL.pi()
                        .multiply(latitude)
                        .divide(180))
                        .multiply(DSL.cos(DSL.pi()
                                .multiply(UC_ORGAN_SHOP.DIMENSION)
                                .divide(180)))
                        .multiply(DSL.power(DSL.sin((DSL.pi()
                                .multiply(longitude)
                                .
                                        divide(180)
                                .subtract(DSL
                                        .pi()
                                        .multiply(UC_ORGAN_SHOP.LONGITUDE)
                                        .divide(180))
                                .divide(2))), 2)))))
        .multiply(1000)
        .multiply(2)
        .multiply(6378.138)).as("distan");

望提供参考~

今天关于《JOOQ框架下 实现 mysql 中 计算 两点 经纬度 之间的距离》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表