私はMKLocalSearch
地図検索を実行するために使用しています。私の問題は、応答での MKMapItems の順序です。たとえば、私が現在いる都市を検索すると、最初にその都市名に関連する多数の企業が返され、実際の都市を見つけるためにしばらくスクロールする必要があります。region
のプロパティを使用してMKLocalSearchRequest
、近くの領域に検索を集中させています。
私の質問は次のとおりです。
- 返信が返される順序を変更できますか? たとえば、Maps アプリは、最初の文字を入力しただけで私の都市を一番上に表示します。トップに POI: やビジネスが表示されないのはなぜですか?
- 検索から企業を完全に除外し、住所のみを取得する方法はありますか?
関連するかどうかはわかりませんが、検索用のコードは次のとおりです。
-(void)issueLocalSearchLookup:(NSString *)searchString {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.location.coordinate, 30000, 30000);
self.localSearchRequest = [[MKLocalSearchRequest alloc] init];
self.localSearchRequest.region = region;
self.localSearchRequest.naturalLanguageQuery = searchString;
self.localSearch = [[MKLocalSearch alloc] initWithRequest:self.localSearchRequest];
[self.localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
if(error){
NSLog(@"LocalSearch failed with error: %@", error);
return;
} else {
for(MKMapItem *mapItem in response.mapItems){
[self.data addObject:mapItem];
}
[self.searchDisplayController.searchResultsTableView reloadData];
}
}];
}