Итак, Ive внедрил searchBar
для моего приложения карт и дал мне некоторые странные результаты. Например, если я ищу «Осло», это указывает на очень специфическое, но странное место к северу от города и приближается к дальнему. Должно быть, что-то я сделал неправильно в коде здесь. Любой, кто может определить проблему?MKLocalSearchRequest дает мне странные результаты
// When user submits search query
func searchBarSearchButtonClicked(searchBar: UISearchBar){
// resign first responder and dismiss the searchbar.
searchBar.resignFirstResponder()
dismissViewControllerAnimated(true, completion: nil)
// Create and start search request
localSearchRequest = MKLocalSearchRequest()
localSearchRequest.naturalLanguageQuery = searchBar.text
localSearch = MKLocalSearch(request: localSearchRequest)
localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in
if localSearchResponse == nil{
let alertController = UIAlertController(title: nil, message: "Place Not Found", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
return
}
let center = CLLocationCoordinate2D(latitude: localSearchResponse!.boundingRegion.center.latitude, longitude: localSearchResponse!.boundingRegion.center.longitude)
self.updateCurrentMapRegion(center, distance: 5000)
NSNotificationCenter.defaultCenter().postNotificationName("LocationUpdate", object: nil, userInfo: ["latitude": center.latitude, "longitude": center.longitude])
}
}
Кроме того, одна проблема заключается в том, что я удалил расстояние до 5000 метров при обновлении области карты после получения результата поиска. Как я могу справиться с этим более динамично?
Что альтернатива использованию MKLocalSearchRequest(), который, на мой взгляд звучит как то, что вы должны использовать при поиске вещей поблизости и не более крупные объекты, такие как города и т.д.