2013-03-05 4 views
1

Я получаю ошибку «завершающее приложение из-за неперехваченное исключение„NSInvalidArgumentException“, причина:" Invalid область»в моей части code.This есть код:MKMapView NSInvalidArgumentException Invalid область аварии в ИОС

- (MKCoordinateRegion)region 
{ 
    MKCoordinateSpan span; 
    span.latitudeDelta = (maxLat + 90) - (minLat + 90); 
    span.longitudeDelta = (maxLon + 180) - (minLon + 180); 

    NSLog(@"value of lat delta %f",span.latitudeDelta); 
    NSLog(@"value of long delta %f",span.longitudeDelta); 

    if(span.latitudeDelta == 0.0f) 
    span.latitudeDelta = 0.1f; 
    if(span.longitudeDelta == 0.0f) 
    span.longitudeDelta = 0.1f; 

    CLLocationCoordinate2D center; 
    center.latitude = minLat + span.latitudeDelta/2; 
    center.longitude = minLon + span.longitudeDelta/2; 

    return MKCoordinateRegionMake(center, span); 
} 

Здесь center.latitude и center.longitude получают нулевое значение, и его получение разбивается. Значения для maxlat, maxlon, minlat и minlon равны maxLat = -91, minLat = 91, maxLon = -181, minLon = 181 Просьба помочь мне в этом.

ответ

1

У меня была аналогичная проблема. Наложение карт max (lat, long) и min (lat, long) на google-карты в основном выдает их за пределы. (и это, как мне кажется, не обрабатывается изящно в MapKit в iOS 6)

На данный момент исправление, которое у меня есть (и оно работает), должно установить эти значения: maxLat = -75, minLat = 75, maxLon = -175, minLon = 175

Мое приложение может позволить себе это сделать, поскольку в основном оно рисует карту для некоторых из наиболее густонаселенных районов. Если ваша карта должна показать всю планету, включая северные/южные полюса, то я не уверен, поможет ли мой хак.

0

Я имел такую ​​же проблему и исследовали, что значения maximimum по широте и долготы может быть установлен на: minLat = -84 maxLat = 84 minLong = -179 maxLong = 179 , иначе ваше местоположение будет вне границ карты и вызов setRegion может привести к сбою.

Смежные вопросы