Kiw*_*Tew 2 iphone xcode objective-c ios swift
我想知道是否有可能在mapKit中为MKLocalSearchRequest和MKLocalSearchResponse设置一个国家/地区?
在我的地图视图中,用户可以搜索zip /状态.但我不想在其他国家展示热门歌曲,因为这里没有任何意义.
提前致谢,
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)
}
}
Run Code Online (Sandbox Code Playgroud)
虽然似乎没有办法明确约束MKLocalSearchRequest到特定的地理上下文,但您可以通过以下步骤非常接近:
region属性设置为MKCoordinateRegion对应于美国(不幸的是,阿拉斯加和夏威夷使该地区相当大;根据您的应用,您可能只想使用美国大陆).MKMapItem返回的数组,仅使用其国家/地区代码所属的数组.MKLocalSearchResponseplacemarkcountryCode"US"如果您没有获得所需的结果,则可以调查其他第三方API服务,以查看其中任何一项是否更适合您的特定用例.
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |