2013-11-07 2 views
1

Этот код У меня есть работы для iOS 6, но нет шва, чтобы повлиять на iOS 7. Как я могу заставить его работать для iOS 7 при настройке span doesn Эффект?Как уменьшить масштаб нагрузки для mkmapview в iOS 7

CLLocationCoordinate2D ctrpoint = self.location.coordinate; 


MapPoint *mp = [[MapPoint alloc] initWithCoordinate:ctrpoint title:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Pin Name:", @"Pin Name:"),self.pin.name] subtitle:self.pin.cell]; 
[self.mapView addAnnotation:mp]; 



MKCoordinateSpan span; 

span.latitudeDelta = 0.2; 
span.longitudeDelta = 0.2; 

MKCoordinateRegion region; 
region.span = span; 
region.center = self.location.coordinate; 

[self.mapView setRegion:region animated:YES]; 

ответ

1
  • Предполагая, что self.mapView уже синтезирован я бы сделать что-то вроде этого:

    MKCoordinateRegion region = [self.mapView regionThatFits:MKCoordinateRegionMakeWithDistance([self.location.coordinate, 800, 800)]; 
    region.span.latitudeDelta = 0.2; 
    region.span.longitudeDelta = 0.2; 
    [self.mapView setRegion:region animated:YES]; 
    
  • Пожалуйста, обратите внимание, что 800 значения в MKCoordinateRegionMakeWithDistance являются "CLLocationDistance latitudinalMeters" и «CLLocationDistance longitudinalMeters ». Возможно, вам придется изменить их в зависимости от размера вашей карты и уровня масштабирования, который вы хотите.

  • Для точки карты я бы сделать что-то вроде этого:

    MKPointAnnotation *mapPoint = [[MKPointAnnotation alloc] init]; 
    [mapPoint setCoordinate:self.location.coordinate]; 
    [mapPoint setTitle:@"Your title"]; 
    [mapPoint setSubtitle:@"My subtitle"]; 
    [mapView addAnnotation:mapPoint]; 
    
  • Я испытал это в обоих iOS6 и iOS7 и могу заверить вас, что работает просто отлично.

+0

зумирования работает, но не является правильным, но жёстко или hackisch –

2

правильный способ заключается в использовании константы при условии:

- (MKCoordinateRegion)regionForWorld { 
    return MKCoordinateRegionForMapRect(MKMapRectWorld); 
} 

так

- (void)zoomToWorldAnimated:(BOOL)animated { 
    MKCoordinateRegion region = [self regionForWorld]; 
    [self.mapView setRegion:region animated:animated]; 
} 
Смежные вопросы