Я использую Карты Apple, чтобы получить список адресов в локальной области. Однако, похоже, это возвращает результаты со всего мира, а не область карты, которую я указываю.MKLocalSearch возвращает результаты за пределами региона
Я использую следующий код и проверил область, чтобы убедиться, что это «широко» весь Лондон (см. Вложение) для mapView с теми же параметрами. Однако в моих результатах я иногда бывал в Германии, США или Южной Америке.
Любой может видеть, что я делаю неправильно?
MKLocalSearchRequest* request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = searchTerm;
CLLocationCoordinate2D cornerCoordinate = CLLocationCoordinate2DMake(51.5007282, -0.1246263);
request.region = MKCoordinateRegionMakeWithDistance(cornerCoordinate, 50000, 50000);
MKLocalSearch* search = [[MKLocalSearch alloc] initWithRequest:request];
[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
//results come in here
}];
Карта региона:
Документов для свойства MKLocalSearch области говорит:. «Указание региона не гарантирует, что результаты будут все внутри региона Это всего лишь намек к поисковой системе. " Вы вручную проверяете расстояние полученных MKMapItems (mapItem.placemark.coordinate) и фильтруете по мере необходимости, но это не идеально. Из-за этого и других недостатков MKLocalSearch рассмотрите альтернативы (см. Http://stackoverflow.com/questions/25027729/mklocalsearch-not-finding-obvious-results?rq=1). – Anna