我想知道是否有可能为MKLocalSearchRequest和MKLocalSearchResponse在mapKit建立一个国家?
在我的地图视图中,用户可以搜索zip/state。但我不想在其他国家展示热门,因为这在这里没有任何意义。
提前谢谢你,
localSearchRequest = MKLocalSearchRequest()
localSearchRequest.naturalLanguageQuery = "23138"
localSearch = MKLocalSearch(request: localSearchRequest)
localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in
if localSearchResponse == nil || self.mapView == nil{
var alert = UIAlertView(title: nil, message: "Place not found", delegate: self, cancelButtonTitle: "Try again")
alert.show()
return
} else {
let location = CLLocationCoordinate2D(latitude: localSearchResponse.boundingRegion.center.latitude, longitude: localSearchResponse.boundingRegion.center.longitude)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: location, span: span)
self.mapView.setRegion(region, animated: false)
self.pointAnnotation = MKPointAnnotation()
self.pointAnnotation.coordinate = location
self.mapView.addAnnotation(self.pointAnnotation)
}
}
发布于 2015-07-27 19:44:25
虽然似乎没有一种方法可以显式地将MKLocalSearchRequest
限制在特定的地理上下文中,但是您可以通过以下步骤得到非常接近的结果:
region
属性设置为与美国相对应的MKCoordinateRegion
(不幸的是,阿拉斯加和夏威夷使该区域变得相当大;取决于您的应用程序,您可能只想使用美国大陆)。MKMapItem
属性的countryCode
属性筛选从MKLocalSearchResponse
返回的placemark
数组,以仅使用其国家代码为"US"
的数组。如果您没有得到想要的结果,您可以研究其他第三方API服务,看看这些服务是否更适合您的特定用例。
https://stackoverflow.com/questions/31661565
复制相似问题