2016-04-08 11 views
0

Ich möchte den Standort meiner Karte ändern mit personnal koordinate. (wenn ich "personal" sage, ist das nicht der "Benutzerstandort", sondern nur eine zufällige Koordonate).Ändern der Koordinaten der Karte (MapKit)

Das ist mein MapView Controller:

class MapSubViewController: UIViewController { 

    @IBOutlet weak var mapView: MKMapView! 

    let regionRadius: CLLocationDistance = 1000 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    self.mapLocationUpdate(70.0, longitude: 70.0, title: "") 
    } 

    func mapLocationUpdate(latitude: Double, longitude: Double, title: String) { 
    let location = CLLocationCoordinate2D(latitude: latitude, longitude: longitude) 
    self.centerMapOnLocation(location, title: title) 
    } 

    func centerMapOnLocation(location: CLLocationCoordinate2D, title: String) { 
    let coordinateRegion = MKCoordinateRegion(center: location, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)) 
    self.mapView.setRegion(coordinateRegion, animated: false) 
    let annotation = MKPointAnnotation() 
    annotation.coordinate = location 
    annotation.title = title 
    self.mapView.addAnnotation(annotation) 
    } 

} 

ich meine Funktion "mapLocationUpdate" sagen, wenn ich die Lage meiner Karte ändern möchten:

zum Beispiel

hier:

func addMapView(xPosition: Double, yPosition: Double, title: String) { 
    self.mapSubViewController = (self.storyboard!.instantiateViewControllerWithIdentifier("MapSubViewController") as? MapSubViewController)! 
    self.mapSubViewController.mapLocationUpdate(xPosition, longitude: yPosition, title: clubName) 
[...] 
} 

Meine App stürzt ab, wenn die Zeile "self.mapSubViewController.mapLocationUpdate (...)" ausgeführt wird. Wenn es die "viewDidLoad" des Controllers ist, die die Funktion "mapLocationUpdate" sagen, stürzt die App nicht ab.

Ich denke es ist, weil der Kartenstandort nicht im Code nach der geladenen Karte geändert werden kann.

Wie kann ich tun?

Sorry für mein Englisch, ich gebe mein Bestes :-)!

Thx!

Antwort

0

Um eine benutzerdefinierte Position auf einer Karte setzen Sie etwas ähnliches wie dies zu sollen:

let pLat = 43.6109200 
let pLong = 3.8772300 
let center = CLLocationCoordinate2D(latitude: pLat, longitude: pLong) 

let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)) 

self.mapView.setRegion(region, animated: true) 
+0

Ich verstehe, und ich tue das auf meiner Funktion „centerMapOnLocation“. Wenn ich mapLocationUpdate erkläre, wird die Karte an meinem Standort abgelegt, aber ich kann diesen Standort nicht ändern, da die App abstürzt. Ich suche, um den Ort nach dem ViewDidLoad zu ändern, nachdem die Ansicht initialisiert wurde – Robin

+0

Ich ändere mu subjet zu Ihrem Code, aber das Problem ist das gleiche! – Robin

+0

Wenn du sagst "Ich kann diesen Ort nicht ändern nach" meinst du damit programmatisch oder eigentlich in der App die Karte "berührend"? Wenn es die zweite Option ist, versuchen Sie, Benutzerinteraktionen im Storyboard zu aktivieren. – giacavicchioli

Verwandte Themen