2017-08-05 3 views
0

J'ai mis en œuvre pour obtenir l'emplacement actuel par CoreLocation & CLLocation.Choisir un emplacement sur MapKit et obtenir la latitude et la longitude

Dans un autre UIViewController, je veux choisir un emplacement sur MapKit et obtenir la latitude et la longitude de MapKit. J'ai beaucoup cherché mais j'ai trouvé quelques cours en Objective-C.

Y at-il un cours dans Swift?

class CustomLocationVC: UIViewController, MKMapViewDelegate, UIGestureRecognizerDelegate { 

@IBOutlet weak var mapKitC: MKMapView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    mapKitC.delegate = self 
    let gestureZ = UILongPressGestureRecognizer(target: self, action: #selector(self.revealRegionDetailsWithLongPressOnMap(sender:))) 
    view.addGestureRecognizer(gestureZ) 
} 

@IBAction func revealRegionDetailsWithLongPressOnMap(sender: UILongPressGestureRecognizer) { 
    if sender.state != UIGestureRecognizerState.began { return } 
    let touchLocation = sender.location(in: mapKitC) 
    let locationCoordinate = mapKitC.convert(touchLocation, toCoordinateFrom: mapKitC) 
    print("Tapped at lat: \(locationCoordinate.latitude) long: \(locationCoordinate.longitude)") 
} 

}

C'est ce que j'ai à ce jour, mais ça ne marche pas ...

Répondre

0

D'abord, vous devez ajouter votre UILongPressGestureRecognizer à votre MKMapView au lieu de votre ViewController.View

Remplacez votre méthode viewDidLoad par celle-ci

override func viewDidLoad() { 
    super.viewDidLoad() 
    mapKitC.delegate = self 
    let gestureZ = UILongPressGestureRecognizer(target: self, action: #selector(self.revealRegionDetailsWithLongPressOnMap(sender:))) 
    mapKitC.addGestureRecognizer(gestureZ) 
} 

Après que votre méthode devrait fonctionner comme prévu

Espérons que cela aide