-2

蒸気の 2 つのクラス間の距離を照会する必要があるとしましょう。

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

そんな感じ

4

1 に答える 1

1

あなたの質問が論理的に間違っていることを理解しているかどうかはわかりません。

実際に距離を取得するには、何らかの計算を行う必要があることは明らかです。

座標間の距離を計算するモデルに func を使用して拡張機能を作成し、フィルター関数で if を使用することをお勧めします。

おそらくこのようなもの:

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

私は失礼にならないように努めていますが、あなたが正しく質問するのが面倒だったことを願っています.

于 2016-11-24T21:24:34.070 に答える