2013-03-22 2 views
1

Я хочу получить текущее местоположение и оживить эту координату на MKMapView. Я получил текущее местоположение, но я не сделал анимацию в этом месте на MKMapView. Как я могу оживить текущее местоположение с помощью синей точки?MKMapView не может установить центр по местоположению

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    locationManager = [[CLLocationManager alloc] init]; 

    self.mapView.delegate = self; 
    [self.mapView setShowsUserLocation:YES]; 

    locationManager.delegate=self; 
    locationManager.desiredAccuracy=kCLLocationAccuracyBest; 
    locationManager.distanceFilter=kCLDistanceFilterNone; 

    [locationManager startUpdatingLocation]; 
} 

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation 
{ 

    location = [locationManager location]; 

    CLLocationCoordinate2D coord; 
    coord.longitude = location.coordinate.longitude; 
    coord.latitude = location.coordinate.latitude; 
    lat = coord.latitude; 
    longt = coord.longitude; 

    [self.mapView setCenterCoordinate:coord animated:TRUE]; 
} 

- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views 

{ 
    MKAnnotationView *annotationView = [views objectAtIndex:0]; 
    id<MKAnnotation> mp = [annotationView annotation]; 
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate] ,250,250); 
    [mv setRegion:region animated:YES]; 
} 
+0

вы хотите установить MAPview центр текущего пользователя .M места я прав? –

+0

Да, я хочу установить центр mapview по текущему местоположению пользователя –

ответ

1
self.mapView.userTrackingMode = MKUserTrackingModeFollow 

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

+0

Ничего не случилось. Карта не может приближаться к текущему местоположению. –

+0

Вы называете методы делегирования вашего местоположения? вы работаете на устройстве или симуляторе? – wattson12

+0

Весь код здесь, вы можете видеть, я бегу на устройстве. –

0

Вы должны зарегистрироваться для Кво уведомлений о userLocation.location имущества MKMapView.

Для этого введите этот код в viewDidLoad: вашего ViewController или где-нибудь в том месте, где инициализировано ваше представление карты.

[self.mapView.userLocation addObserver:self forKeyPath:@"location" 
      options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:NULL]; 

Затем реализовать этот метод, чтобы получить КВО уведомления

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 

    if ([self.mapView showsUserLocation]) 
    { 
     [self moveOrZoomOrAnythingElse]; 
    } 
} 
+0

Не работает. Карта по-прежнему не может перемещаться или приближаться к местоположению пользователя. –

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