我想知道请求是什么样子的,或者哪个类用于获取诸如使用Apple Maps搜索之类的结果?我试过:
[geocoder geocodeAddressString:text
completionHandler:^(NSArray *placemarks, NSError *error)
这似乎只给出了一个结果。
MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request];
[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error)
像当地商店等一样回馈。
我怎样才能得到结果,比如你输入几个字母,你得到10个最匹配的城市?
它的方式如上所述。最后,我使用谷歌地图API搜索来获得我正在寻找的前10个结果。
对于地理编码部分: MKLocalSearch 返回 MKMapItems 的列表 每个 MKMapItem 都可以通过调用 mapItem.placemark
来访问 MKPlacemark
这是它变得很酷的地方,在地标中您可以访问地址字典。在地址字典中,您可以找到各种地理详细信息,例如地址,格式化地址,地区,国家等。
MKLocalSearch使用.naturalLanguageQuery
来搜索其数据库。此设置的问题在于,它将根据您当前(或指定)的位置返回前 10 名,这使得诸如"城市"之类的搜索非常困难。希望这有帮助!