MapView показывает в океане в ios 5 - PullRequest
0 голосов
/ 06 марта 2012

У меня было приложение, которое работало нормально, пока я не обновился до ios 5.0. После обновления карта отображается в океане. Я не уверен, что пошло не так. Вот код, который я использую

[mapView setMapType: MKMapTypeStandard];

[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
region.center.latitude = deleg.selectedVenue.latitude;
region.center.longitude = deleg.selectedVenue.longitude;
region.span.longitudeDelta = 0.01f;
region.span.latitudeDelta = 0.01f;
[mapView setRegion:region animated:YES];

Как я могу сделать это правильно в ios 5.0? Спасибо

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Убедитесь, что Deleg.selectedVenue является действительной координатой, например,

if (CLLocationCoordinate2DIsValid(deleg.selectedVenue)) {
    // add to your mapView
}
else {
    NSLog(@"coordinate is invalid");
}

, где CLLocationCoordinate2DIsValid - это функция, объявленная в платформе Core Location.

0 голосов
/ 06 марта 2012

Вот мой фрагмент кода, который работает под iOS5.Не стесняйтесь задавать любые вопросы.

// grab the location from persistent store
CLLocation *loc = [store currentLocation];


CLLocationCoordinate2D zoomLocation;
float zoom;

// it will be NULL on first launch, so initialize to someplace interesting.
if (!loc) {
    CLLocationCoordinate2D longPointLightLocation;
    longPointLightLocation.latitude = 42.033126;
    longPointLightLocation.longitude = -70.168621;
    // center the map so the initial zoom when the GPS kicks in is from HERE, not the default
    [mapView setCenterCoordinate:longPointLightLocation animated:NO];
    zoomLocation = longPointLightLocation;
    zoom = 50;    // on first launch, zoom way out
} else {
    zoomLocation.latitude = loc.coordinate.latitude;
    zoomLocation.longitude = loc.coordinate.longitude;
    zoom = 2;
}

MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, zoom*METERS_PER_MILE, zoom*METERS_PER_MILE);
[mapView setRegion:[mapView regionThatFits:viewRegion] animated:NO]; 
...