2016-11-24 67 views
-2

比方說,我需要查詢的vapor.Here兩個類之間的距離是我的意思蒸氣查詢類按距離

let distanceBetweenLocations = 5 
let CloseLocations = try Locations.query().filter("lat", .distance , .isLessThan , 4) 

類似的東西

+0

你的問題沒有任何意義...請重寫它,我們可以幫助你 – Quver

回答

1

我不知道,如果你認識到自己問題在邏輯上是錯誤的。

很明顯,你將不得不做一些計算來實際得到距離。

我建議創建擴展與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測試項目閱讀它試圖瞭解,當你這樣做,你會知道如何實現你所需要的。