2014-01-31 2 views
0

Я создаю кнопку, которая поместит булавку на текущее местоположение пользователей. Но когда я его нажимаю, вместо этого он находится посередине глобальной карты, вокруг Африки, я считаю, что это связано с тем, что в первоначальном учебнике, где я получил это, они создали метод void с «didUpdateUserLocation», но я может понять способ добавить это в IBAction, вот что я работаю. У кого-нибудь были проблемы с этим?добавление кнопки булавки

Это изменение масштаба в коде, но обратите внимание на didUpdateUserLocation там VVVV

-(void)mapView: (MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
    MKCoordinate region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 
    800,800); 
    [self.mapView setRegion:[self.mapView regionThatFits:region] animated:NO]; 
} 

`

Теперь вот IBAction, что при постукивании, капли булавки вокруг Африки или центр глобальных карта. Я полагал, что это потому, что он отсутствует в didUpdateUserLocation

-(IBAction)addAnnotation; 
{ 
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 
    800,800); 
    [self.mapView setRegion:[self.mapView regionThatFits:region] animated:NO]; 

    MKPointAnnotation *point = [[MKPointAnnotation Alloc] init]; 
    point.coordinate = myLocation.coordinate; 
    point.title = @"Test"; 
    point.subtitle = @"Text"; 
    [self.mapView addAnnotation:point]; 
} 

Так что, если кто-нибудь знает, как то, что я понять это решение, didUpdateUserLocation к IBAction, пожалуйста, дайте мне знать, ценю это!

+0

Что координата 'myLocation'? Может быть вокруг Африки .. – Martol1ni

+0

это MKUserLocation, извините забыл упомянуть об этом –

+0

Код, который вы отправили, не будет компилироваться. Скопируйте + вставьте код _actual_. Как и где устанавливается 'myLocation'? Установлено ли showUserLocation на YES на карте? Отображает ли в виде карты голубую точку? Установлен/подключен делегат карты? – Anna

ответ

0

Попробуйте это ...

- (void)mapView:(MKMapView *)aMapView didUpdateUserLocation:(MKUserLocation *)aUserLocation 
{ 
    MKCoordinateRegion region; 

    CLLocationCoordinate2D location; 
    location.latitude = aUserLocation.coordinate.latitude; 
    location.longitude = aUserLocation.coordinate.longitude; 

    region.span = aMapView.region.span; 
    region.center = location; 
    [self.objMapView setRegion:region animated:FALSE]; 

    showCurrentLoc = FALSE; 
} 

-(IBAction)addAnnotation; 
{ 
    MKCoordinateRegion region; 
    region.span = self.mapView.region.span; 
    region.center = location; 
    [self.mapView setRegion:region animated:FALSE]; 

    MKPointAnnotation *point = [[MKPointAnnotation Alloc] init]; 
    point.coordinate = self.mapView.userLocation.coordinate; 
    point.title = @"Test"; 
    point.subtitle = @"Text"; 
    [self.mapView addAnnotation:point]; 
} 
+0

спасибо, что ответили Раджешу, но грустно сказать, что он не работал –

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