当前位置: 首页 > 后端技术 > Java

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

时间:2023-04-01 21:35:47 Java

原计算公式如下:公式如下,单位为米:第一个点的经纬度:lng1lat1第二个点的经纬度:lng2lat2round(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).subtr行为(DSL.pi().multiply(UC_ORGAN_SHOP.LONGITUDE).divide(180)).divide(2))),2))))).multiply(1000).multiply(2).multiply(6378.138)).as("距离");