2016-11-24 4 views
-2

ことでクラスのクエリのは、私がvapor.Hereに二つのクラス間の距離を照会する必要があるとしましょう、私は蒸気が距離

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

何を意味するか、私はあなたのことを理解している場合を確認していないこと

+0

あなたの質問には意味がありません...してください、書き直してください – Quver

答えて

1

ようなものです質問は論理的に間違っています。

実際に距離を取得するには、何らかの計算をしなければならないことは明らかです。

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 
    } 
} 

私がしようとしています:

私は

何か、このおそらくのように....座標間の距離を計算した後、フィルターFUNCであれば使用するモデルを超えるFUNCと拡張を作成することをお勧め失礼ではありませんが、 あなたが正しく尋ねるのが怠惰であることを願っています。thisテストプロジェクトはすべて理解しようとしています。あなたが必要とするものを達成する方法を知っています。