2017-08-05 2 views
0

Ich implementiert, um den aktuellen Standort von CoreLocation & CLLocation zu erhalten.Wählen Sie einen Standort auf MapKit und erhalten Sie Breiten- und Längengrad

In einem anderen UIViewController, ich möchte einen Speicherort auf MapKit wählen und Breite und Länge von MapKit erhalten. Ich habe viel gesucht, aber ich habe ein paar Kurse mit Objective-C gefunden.

Oder gibt es einen Kurs in 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)") 
} 

}

Das ist, was ich bisher, aber es funktioniert nicht ...

Antwort

0

Zuerst müssen Sie Ihre UILongPressGestureRecognizer zu Ihrem MKMapView hinzuzufügen statt Ihrer ViewController.View

Ersetzen Sie Ihre viewDidLoad Methode durch diese

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

Danach sollte Ihre Methode wie vorgesehen funktionieren

Hoffe, dies hilft

Verwandte Themen