蒸气查询类按距离
问题描述:
比方说,我需要查询的vapor.Here两个类之间的距离是我的意思蒸气查询类按距离
let distanceBetweenLocations = 5
let CloseLocations = try Locations.query().filter("lat", .distance , .isLessThan , 4)
类似的东西
答
我不知道,如果你认识到自己问题在逻辑上是错误的。
很明显,你将不得不做一些计算来实际得到距离。
我建议创建扩展与FUNC在你的模型,该模型将计算坐标之间的距离,然后在过滤器FUNC使用,如果....
像这样的东西可能:
extension Location{
func distance(lat: Double, lon: Double) -> Double {
let R = 6371.0
let dLat = (lat - localLat) * 3.14/180
let dLon = (lon - localLon) * 3.14/180
let latRad1 = localLat * 3.14/180
let latRad2 = lat * 3.14/180
let a1 = sin(dLat/2) * sin(dLat/2)
let a2 = sin(dLon/2) * sin(dLon/2) * cos(latRad1) * cos(latRad2)
let a = a1 + a2
let c = 2 * atan2(sqrt(a),sqrt(1-a))
return R * c
}
}
我想不要粗鲁,但 我希望你只是懒得问正确,如果你不是,请参阅this测试项目阅读它试图了解,当你这样做,你会知道如何实现你所需要的。
你的问题没有任何意义...请重写它,我们可以帮助你 – Quver