2016-04-08 4 views
0

Я хочу изменить местоположение своей карты с персональной координацией. (когда я говорю «personnal», это не «местоположение пользователя», а просто случайная координация).Изменить координаты карты (MapKit)

Это мой MapView Контроллер:

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) 
    } 

} 

я сказать функцию "mapLocationUpdate", когда я хочу изменить расположение моей карты:

Вот к примеру:

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

Мое приложение вылетает, когда выполняется строка «self.mapSubViewController.mapLocationUpdate (...)». Когда это «viewDidLoad» контроллера, который сообщает функции «mapLocationUpdate», приложение не сбой.

Я думаю, это потому, что местоположение карты не может быть изменено в коде после того, как карта зарядилась.

Как я могу это сделать?

Извините за мой английский, я делаю все возможное :-)!

Thx!

ответ

0

Для того, чтобы установить пользовательское местоположение на карте, вы должны что-то похожее на это:

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

Я понимаю, и я сделать это на моей функции «centerMapOnLocation». Когда я говорю mapLocationUpdate, карта переходит в мое местоположение, но после этого я не могу изменить это местоположение, потому что это приложение сбой. Я пытаюсь изменить местоположение после viewDidLoad после инициализации представления – Robin

+0

Я меняю mu subjet на ваш код, но проблема такая же! – Robin

+0

Когда вы говорите: «Я не могу изменить это местоположение после», вы имеете в виду программно или фактически в приложении «касание» карты? Если это второй вариант, попробуйте включить взаимодействие пользователей в раскадровке. – giacavicchioli

Смежные вопросы