【发布时间】:2015-01-15 21:37:57
【问题描述】:
我正在使用带有 scala 的 slick 来查找用户到关闭点的距离。但我不确定如何正确使用 slick。我尝试了不同的方法,但我不断收到符号错误或没有得到适当的答案。我要转换的 SQL 查询是:
SELECT *, 3956 * 2 * sin(sqrt( pow(sin((spot_lat -
abs(lat)) * Pi/180 / 2),2) + cos(spot_lat * Pi/180 ) * cos(abs(lat) * Pi/180) *
pow(sin((spot_lon – lon) * Pi/180 / 2), 2) )) as distance
FROM Spots
其中 lat 和 lon 已作为输入给出
【问题讨论】:
-
你能包括你一直在尝试的 Scala 吗?
-
@Jonoabroad
val q = for { s <- globals.spots } yield (3956 * 2 * sin(sqrt( pow(sin((s.spot_lat - abs(lat)) * Pi/180 / 2),2) + cos(s.stop_lat * Pi/180 ) * cos(abs(lat) * Pi/180) * pow(sin((s.spot_lon – lon) * Pi/180 / 2), 2) )) ) -
@Jonoabroad
val newQuery = for {(latr, lonr) <- Parameters [(Double, Double)] u <- globals.spots if u.spot_lat >= latr && u.spot_lon >= lonr}yield u val result = newQuery(lat, lon).list这个更像是一个测试,看看它是否会查询 -
型号?我会尝试从查询中重新创建它。
标签: scala distance slick typesafe