2011-11-24 11 views
15

Sto mostrando lo current location in MKMapView utilizzando le opzioni showUserLocation. Voglio anche centrare lo mapview nella posizione corrente dell'utente e anche la mappa ingrandita della posizione. Per favore aiutatemi riguardo a questo perché non ricevo alcun aiuto da altre domande simili su StackOverflow.Come centrare la mia posizione attuale in MKMapView?

Il mio codice è qui sotto:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [mapView setMapType:MKMapTypeStandard]; 
    [mapView setZoomEnabled:YES]; 
    [mapView setScrollEnabled:YES]; 
    [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES]; 
    [mapView setDelegate:self]; 
} 

risposta

46

Per centrare sulla posizione dell'utente, è possibile utilizzare il seguente codice:

[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES]; 

Per impostare lo zoom su luoghi particolari, si dovrebbe studiare come le regioni (MKCoordinateRegion) vengono conteggiati e funzionano, contano i valori per la regione e visualizzarli utilizzando la chiamata:

[mapView setRegion:myRegion animated:YES]; 

Questo sample WorldCities mostra le nozioni di base della visualizzazione della regione.

+0

sto anche doint la stessa cosa ma doesnot lavoro .... Altri suggerimenti, se possibile .... grazie in anticipo ... – vipul

+0

forse di poter postare il tuo codice nella tua domanda, quindi sarà facile indovinare cosa c'è che non va =) – Denis

+0

Ho aggiornato il mio codice in questione e questo non centrerà la mapView su currentLocation.Per favore controllalo e aiutami .... grazie in anticipo. – vipul

2
MKCoordinateRegion region; 
    MKCoordinateSpan span; 
    span.latitudeDelta = 0.2;  // 0.0 is min value u van provide for zooming 
    span.longitudeDelta= 0.2; 

    CLLocationCoordinate2D location = [self addressLocation]; 
    region.span=span; 
    region.center =location;  // to locate to the center 
    if(addAnnotation != nil) { 
     [mapView removeAnnotation:addAnnotation]; 
     [addAnnotation release]; 
     addAnnotation = nil; 
    } 
    addAnnotation = [[AddressANnotation alloc] initWithCoordinate:location]; 
    [mapView addAnnotation:addAnnotation]; 
    [mapView setRegion:region animated:TRUE]; 
    [mapView regionThatFits:region]; 

Questo mi ha aiutato a mostrare la posizione al centro della vista mappa.

0

per MKMapView

self.mapView.showsUserLocation = YES; 
self.mapView.userTrackingMode = MKUserTrackingModeFollow; 
0
-(void) removeZoom:(float)deltaValue 
{ 
    MKCoordinateRegion region; 
    region.center.latitude = self.locationManager.location.coordinate.latitude; 
    region.center.longitude = self.locationManager.location.coordinate.longitude; 

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    region.span.latitudeDelta = deltaValue; 
    region.span.longitudeDelta = deltaValue; 
    region = [mapViewSelf regionThatFits:region]; 
    [mapViewSelf setRegion:region animated:YES]; 
    [UIView commitAnimations]; 

} 
Problemi correlati