都市内のさまざまな地域のリストをその地域の天気とともに返すAPIがあります。現在地に基づいて最寄りのエリアを取得したい。
APIは
- エリア
- 緯度
- 経度
- 天気
このデータに基づいて最も近いエリアを見つける方法は?
都市内のさまざまな地域のリストをその地域の天気とともに返すAPIがあります。現在地に基づいて最寄りのエリアを取得したい。
APIは
このデータに基づいて最も近いエリアを見つける方法は?
すべてのエリアに CLLocation オブジェクトを作成し、ユーザーの現在の場所に 1 つ追加する必要があります。次に、次のようなループを使用して、最も近い場所を取得します。
NSArray *allLocations; // this array contains all CLLocation objects for the locations from the API you use
CLLocation *currentUserLocation;
CLLocation *closestLocation;
CLLocationDistance closestLocationDistance = -1;
for (CLLocation *location in allLocations) {
if (!closestLocation) {
closestLocation = location;
closestLocationDistance = [currentUserLocation distanceFromLocation:location];
continue;
}
CLLocationDistance currentDistance = [currentUserLocation distanceFromLocation:location];
if (currentDistance < closestLocationDistance) {
closestLocation = location;
closestLocationDistance = currentDistance;
}
}
注意すべきことの 1 つは、距離を計算するこの方法では、ポイント A とポイント B の間の直線を使用することです。道路やその他の地理的オブジェクトは考慮されません。