2

オブジェクトが他の場所からの距離を取得するdistanceFromLocationために、この方法をよく使用します。CLLocationCLLocations の配列を列挙し、このメソッドを使用してそれぞれを参照場所と比較します。

distanceFromLocation特に多数のCLLocationオブジェクトが連続して使用される場合の処理​​/メモリへの影響を知りたいです。このメソッドはどのように機能しますか? サーバーに接続してデータを取得しますか? それとも、 Haversine Formulaなどの数式に基づいて距離を計算しますか?

1 つの参照位置と CLLocation オブジェクトの配列の間の距離を比較するより効率的な方法はありますか?

4

4 に答える 4

4

彼らはおそらく、Haversineの代わりに余弦定理を使用しています(なぜですか?この質問を参照してください)。

多くのポイントを1つのポイントと比較して、どれが最も近いかを確認するだけの場合は、計算された距離の精度やパフォーマンスだけを気にしないでください。その場合、おそらくピタゴラスの定理を使用するとうまくいくでしょう。

これらのアルゴリズムはすべて、このWebページで詳しく説明されています。

If performance is an issue and accuracy less important, for small
distances Pythagoras’ theorem can be used on an equirectangular
projection:*

ピタゴラスの定理を使用して関数を実装し、それをCLLocationの関数と、余弦定理を使用するdistanceInMetersFromRadiansの実装に対してベンチマークして、パフォーマンスの違いがどれだけあるかを確認できます。

于 2013-03-22T01:31:17.700 に答える
2

ドキュメントから:

距離からの場所:

この方法では、地球の曲率に沿って 2 つの地点を結ぶ線をたどることで、2 つの地点間の距離を測定します。結果として得られる円弧は滑らかな曲線であり、2 つの場所間の特定の高度の変化は考慮されていません。

はい、Haversine Formula (またはその修正版) を使用していると思います。

于 2013-03-21T14:02:53.673 に答える