Ios MKLocalSearch未找到明显的结果

Ios MKLocalSearch未找到明显的结果,ios,ios7,mapkit,mklocalsearch,Ios,Ios7,Mapkit,Mklocalsearch,我的代码实际上与以下示例相同: 以下是重要的几点: @interface ViewController : UIViewController @property (strong, nonatomic) IBOutlet MKMapView *ibMapView; @end @implementation ViewController { MKLocalSearch *localSearch; MKLocalSearchResponse *results; } - (void

我的代码实际上与以下示例相同:

以下是重要的几点:

@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];
    }
}
当萨特和梅森·阿卡600萨特街在地图区域内搜索“600萨特”时,将包含明显的结果“600萨特街”,这似乎是合理的。我就是做不到。我尝试过许多不同的街道,在得到直接位于地图区域的结果之前,我经常在州外得到结果

此外,“600 Sut”返回不相关的结果,“600 Su”返回错误4。它真的没有找到任何以“600 Su”开头的东西吗

我使用这个API是完全错误的,还是不是为了我想用它做什么

映射所有查询的区域:

600 Sutte

600 Su

我最终放弃了苹果本地搜索API,转而使用谷歌。他们的PlaceAPI正是我所需要的。它可以快速找到相关结果,每天高达10万个请求不需要花费任何费用

自动完成:

详细信息(lat、lon需要此项):

在我的帮助下,我在几个小时内将它构建到我的iOS应用程序中

结果正是我希望看到的:


@borisz-点太少,无法直接评论..小心在IOS应用程序中使用Google Places API。谷歌在其条款和条件中声明,任何显示从谷歌Places API获取的数据的地图都必须是谷歌地图。因此,如果您仍然希望使用他们的API和搜索,只需确保您也使用谷歌地图,而不是苹果的原生地图。希望这有帮助-祝你好运

为那些仍有类似问题的人发布此帖子。 您不应该使用MKLocalSearchRequest()而应该使用MKLocalSearchCompleter,它可以提供更好的结果,并且在当前的Apple地图中使用

您可以在此学习如何实现

谢谢您的评论!我最终完全转向了谷歌、地图和API。任何时候都可以!在这里,你根本无法击败谷歌的搜索结果:)