Pergunta

Aaaarg ... ok, vamos me acalmar.

Alguém teve algum problema em definir a região de um MKMapView? Nunca funcionou comigo.

Este código:

-(void)setUserCenteredSpan:(MKCoordinateSpan)span{ // for this example, span = {0.5, 0.5}
    // Current region (just initialised)
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
    // New Region
MKCoordinateRegion region = MKCoordinateRegionMake([[[self userLocation] location] coordinate],
                                                   span);
NSLog(@"%f, %f - %f, %f",   region.center.latitude,
                            region.center.longitude, 
                            region.span.latitudeDelta, 
                            region.span.longitudeDelta);
    // Region saved in MKMapView
[self setRegion:region animated:NO];
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
}

Retorna esse log:

30.145127, -40.078125 - 0.000000, 0.000000
0.000000, 0.000000 - 0.500000, 0.500000
0.000000, 0.000000 - 0.000000, 0.000000

Você sabe por quê ??!

Muito obrigado, você pode me salvar de me matar x (

Mart

EDIT: Obviamente, estou no dispositivo, conectado à Internet.

Foi útil?

Solução

Não entendo exatamente os registros anteriores, mas sei onde foi meu erro.

O MKMAPView instanciado não foi inicializado com um quadro, mas com uma máscara automática de automóveis definida para> 0.

Quando o método do setRegion foi chamado, minha opinião ainda não estava emoldurada. Eu acho que os valores da região são calculados de acordo com o quadro de visualização, para que esses valores não pudessem ser encontrados.

Basta definir o quadro antes de fazer um setRegion, e ele seria exibido normalmente.

Tchau !

Outras dicas

Seu primeiro log usa self.region.center.latitude, mas não vejo isso em nenhum lugar do seu chamado para MKCoordinateRegionMake. O log está lhe dizendo que tudo o que você está usando para fazer a região definir, tem um Lat/Long de 0/0 ...

Definir a máscara automática me ajudou.

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top