Pergunta
Como posso ampliar o mapa no meu userLocation automaticamente em meu aplicativo? Eu tenho o seguinte código para zomm no mapa, mas devo zoom na userLocation e as seguintes zooms código sempre para a África?
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];
Solução
OK i resolvido o problema, com a seguinte delegado Método:
-(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];
}
}
}
Outras dicas
muito obrigado companheiro, isso me ajudou muito. Realmente queria voto, mas não posso por causa do meu nível de rep.
Eu também achei que usando:
mapView.userLocation.location.coordinate.latitude;
sempre me ampliada para África, e nunca me centrado no meu local atual.
Mas usando o método delegado:
-(void)mapView:(MKMapView *)myMapView didAddAnnotationViews:(NSArray *)views {
Eu era capaz de resolver isso com sucesso. O que eu descobri é que ao usar mapView.userLocation.location.coordinate.latitude; no método viewDidLoad não estava provocando as coordenadas de usuário correto na inicialização do ponto de vista, portanto, estava exibindo as coordenadas erradas.