Jeff
06/10/2021, 9:17 AM6371 * ACOS(COS(RADIANS(:latitude)) * COS(RADIANS(`lat`)) * COS(RADIANS(:longitude) - RADIANS(`lng`)) + SIN(RADIANS(:latitude)) * SIN(RADIANS(`lat`))) AS `distance`
Anyone with an idea on how to implement this?spand
06/10/2021, 10:38 AMEndre Deak
06/10/2021, 10:42 AMalias.aliasOnlyExpression
could be usefulJeff
06/10/2021, 2:56 PMJeff
06/14/2021, 10:00 AMEndre Deak
06/14/2021, 10:27 AMEndre Deak
06/14/2021, 10:27 AMJeff
06/14/2021, 10:32 AMJeff
06/14/2021, 10:34 AMOffices
.leftJoin(Doctors, { Offices.doctor }, { Doctors.id })
.slice(
...,
...,
).selectAll().limit(20).orderBy(...)
Jeff
06/14/2021, 10:51 AMval distance = 6371 *
Math.acos(
Math.cos(Math.toRadians(myLatitude)) *
Math.cos(Math.toRadians(officeLatitude)) *
Math.cos(
Math.toRadians(officeLongitude) -
Math.toRadians(myLongitude)
) +
Math.sin(Math.toRadians(myLatitude)) *
Math.sin(Math.toRadians(officeLatitude))
)
Jeff
06/14/2021, 11:09 AMspand
06/14/2021, 12:39 PM.select { }
blockJeff
06/14/2021, 1:09 PMtapac
06/14/2021, 5:56 PMfun CustomDoubleFunction(
functionName: String,
vararg params: Expression<*>
): CustomFunction<BigDecimal> = CustomFunction(functionName, DoubleColumnType(), *params)
fun Radiants(exp: Expression<BigDecimal>) = CustomDoubleFunction("RADIANTS", exp)
after that when you'll have all needed functions you can write:
val distance = Acos(Cos(Radiants(MyTable.lattitue))) * ...
Endre Deak
06/14/2021, 6:23 PM