ここに投稿された質問で、ユーザーは次のように尋ねました。
経度と緯度でいっぱいの配列があります。ユーザーの場所に2つの二重変数があります。ユーザーの位置間の距離を配列に対してテストして、どの位置が最も近いかを確認したいと思います。どうすればいいですか?
これは2つの場所の間の距離を取得しますが、場所の配列に対してどのようにテストするかを理解するのに苦労しています。
応答として、彼は次のコードを受け取りました。
NSArray *locations = //your array of CLLocation objects
CLLocation *currentLocation = //current device Location
CLLocation *closestLocation;
CLLocationDistance smallestDistance = DBL_MAX; // set the max value
for (CLLocation *location in locations) {
CLLocationDistance distance = [currentLocation distanceFromLocation:location];
if (distance < smallestDistance) {
smallestDistance = distance;
closestLocation = location;
}
}
NSLog(@"smallestDistance = %f", smallestDistance);
私が取り組んでいるアプリケーションでもまったく同じ問題があり、このコードは完全に機能すると思います。ただし、私は Swift を使用しており、このコードは Objective-C です。
私の唯一の質問は、Swift でどのように見えるべきかということです。
助けてくれてありがとう。私はこれらすべてに慣れていないので、Swift でこのコードを見ると、大きな一歩を踏み出すことができます。