我有一个具有一定纬度和经度的地图视图,它将显示地图引脚。我有一个名为address.label.text
的标签。我需要的是什么?
当我按下地图中的任何latitude and longitude
针脚时,我需要在latitude and longitude
my label
的地址
怎么做???
谢谢!
答案 0 :(得分:1)
您需要做的是将控制器指定为MapView
委托并实施此方法:
func mapView(_ mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView)
点按您的图钉时会调用它。从MKAnnotationView
开始,您可以获得注释,这样您就可以获得它的坐标。
这样的事情:
class MyController: UIViewController, MKMapViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
}
func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
if let coordinate = view.annotation?.coordinate {
myLabel.text = "\(coordinate.latitude), \(coordinate.longitude)"
}
}
}
答案 1 :(得分:0)
要从纬度/经度获取地址,您需要使用反向地理编码功能。
func getPlacemarkFromLocation(location: CLLocation) {
CLGeocoder().reverseGeocodeLocation(location, completionHandler: {
(placemarks: [CLPlacemark], error) in
// Do something with placemarks
})
}
然后使用:
调用此方法func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
if let coordinate = view.annotation?.coordinate {
let location = CLLocation(latitude: coordinate.latitiude, longitude: coordinate.longitude)
getPlacemarkFromLocation(location)
}
}
CLPlacemark
个实例包含您之后的地址详细信息。