2011-08-18 12 views
5

Próbuję użyć MKMapView. Udało mi się stworzyć mapę świata. Jednak nie wydaje się zmienić region:Zestaw MKMapView region

Mam przycisk, który będzie wykonywał to:

NSLog(@"%f, %f, %f, %f, 
mapView.region.center.latitude, 
mapView.region.center.longitude, 
mapView.region.span.latitudeDelta, 
mapView.region.span.longitudeDelta); 

Teraz, w moim sposobie viewDidLoad, próbuję ustawić obszar wyjściowy do widzenia:

CLLocationCoordinate2D startCoord; 
startCoord.latitude = 49.0; 
startCoord.longitude = -123.0; 
[mapView setRegion:MKCoordinateRegionMakeWithDistance(startCoord, 200, 200) animated:YES]; 

Po załadowaniu widoku pokazuje on tę samą mapę świata zamiast mniejszego obszaru zgodnie z oczekiwaniami. Natychmiast zalogowaniu atrybuty regionu daje mi:

0,000000, 0,001417, 0.000000, 0.000000

Przesuwanie mapy całego kawałka, zmianę rozmiaru i powiększanie nie zmieniać tych wartości (z wyjątkiem, że drugi sięga 0.000000) .

Wygląda na to, że mapView.region nie jest zgodny z tym, co widzę na ekranie, ale jestem prawie pewien, że linki IB były poprawne, patrzę na nie teraz. Jaki może być problem?

+0

[regionThatFits MapView: MKCoordinateRegionMakeWithDistance (startCoord, 200, 200)]; Dodaj tę linię do kodu. – Harsh

Odpowiedz

24

Trzeba zrobić

CLLocationCoordinate2D startCoord = CLLocationCoordinate2DMake(49, -123); 
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:MKCoordinateRegionMakeWithDistance(startCoord, 200, 200)]; 
[mapView setRegion:adjustedRegion animated:YES];