我的代码实际上与以下示例相同:
https://github.com/iamamused/Example-MKLocalSearch.git
以下是重要的部分:
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet MKMapView *ibMapView;
@end
@implementation ViewController {
MKLocalSearch *localSearch;
MKLocalSearchResponse *results;
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[localSearch cancel];
MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = searchBar.text;
request.region = self.ibMapView.region;
localSearch = [[MKLocalSearch alloc] initWithRequest:request];
[localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){
[self.resultTable reloadData];
}
}
当 Sutter 和 Mason aka 600 Sutter St. 位于地图区域内时,搜索“600 Sutte”将包括明显的结果“600 Sutter St.”,这似乎是合理的。我就是无法让它发挥作用。我尝试了许多不同的街道,并且在获得直接在地图区域中的结果之前,我经常得到州外的结果。
另外,“600 Sut”返回不相关的结果,而“600 Su”返回错误 4.真的没有找到以“600 Su”开头的任何内容吗?
我使用这个 API 是完全错误的,还是不是我想要用它做的?
为所有查询映射区域:
600 苏特
600苏