Domanda
come posso ingrandire la mappa sul mio userLocation automaticamente nella mia app? Ho il seguente codice per ZOMM nella mappa, ma devo ingrandire sul userLocation e il seguente codice ingrandisce sempre in Africa?
MKCoordinateRegion zoomIn = mapView.region;
zoomIn.span.latitudeDelta *= 0.2;
zoomIn.span.longitudeDelta *= 0.2;
zoomIn.center.latitude = mapView.userLocation.location.coordinate.latitude;
zoomIn.center.longitude = mapView.userLocation.location.coordinate.longitude;
[mapView setRegion:zoomIn animated:YES];
Soluzione
OK ho risolto il problema, con il seguente metodo delegato:
-(void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views{
for(MKAnnotationView *annotationView in views) {
if(annotationView.annotation == mv.userLocation){
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.9;
span.longitudeDelta=0.9;
CLLocationCoordinate2D location =mv.userLocation.coordinate;
location = mv.userLocation.location.coordinate;
region.span = span;
region.center = location;
[mv setRegion:region animated:TRUE];
[mv regionThatFits:region];
}
}
}
Altri suggerimenti
Grazie mille compagno, questo mi ha aiutato molto. Veramente voluto votare, ma non posso a causa del mio livello di rep.
Ho anche scoperto che utilizzando:
mapView.userLocation.location.coordinate.latitude;
mi ha sempre ingrandita in Africa, e non mi ha mai centrato sulla mia posizione attuale.
Ma usando il metodo delegato:
-(void)mapView:(MKMapView *)myMapView didAddAnnotationViews:(NSArray *)views {
Sono stato in grado di risolvere questo successo. Quello che ho scoperto è che quando si utilizza mapView.userLocation.location.coordinate.latitude; nel metodo viewDidLoad non è stato innescando le coordinate utente corretti all'avvio della vista, quindi è stato visualizzando le coordinate sbagliate.