たとえば、ユーザーの現在地から半径 1 マイル以内でクエリを検索しようとしているとします。これまでの私の検索コードは次のとおりです。
- (void) performLocalSearch{
MKLocalSearchRequest *searchRequest = [[MKLocalSearchRequest alloc] init];
searchRequest.naturalLanguageQuery = _searchText;
MKCoordinateRegion searchRegion;
searchRegion.center.latitude = userLocation.coordinate.latitude;
searchRegion.center.longitude = userLocation.coordinate.longitude;
searchRegion.span.latitudeDelta = 0.0144927536231884;
searchRegion.span.longitudeDelta = 0.0144927536231884;
searchRequest.region = searchRegion;
MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:searchRequest];
[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
for (MKMapItem *item in response.mapItems) {
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.title = item.name;
annotation.coordinate = item.placemark.coordinate;
[_map addAnnotation:annotation];
}
}
];
}
デバイスでコードを実行すると、マップにピンが表示されますが、指定した半径内にありません。また、MKCoordinateRegionMakeWithDistance を使用して検索領域を設定しようとしましたが、二重半径値を CLLocationDistance オブジェクトとしてキャストする方法がわかりませんでした。どんな助けでも大歓迎です。ありがとう。