MKMapView NSInvalidArgumentException Неверная ошибка региона в ios6

Программа вылетает при установке координат местоположения с помощью MKMapView. Журнал:

Завершение приложения из-за неотображенного исключения "NSInvalidArgumentException", причина: "Недопустимый регион <center:+112.57075000, +37.87049600 span:+0.05165163, +0.43945312>"

span в моей программе

MKCoordinateSpan span;
span.latitudeDelta = .05;
span.longitudeDelta = .02;

после кодирования:

    self.mMKMapview.region = [self.mMKMapview regionThatFits:region];

как показывает журнал, диапазон изменяется на: +0.05165163, +0.43945312

кто-нибудь поможет, я простоял здесь два дня.

Спасибо!

Ответ 1

Проблема заключается в координате center:

+112.57075000, +37.87049600

Широта должна быть от -90 до +90, так что +112.57075 вне диапазона.

Проверьте настройку центральной координаты или, возможно, данные будут назад.


Кроме того, вам не нужно явно вызывать regionThatFits, потому что отображение карты делает это автоматически, когда вы обычно устанавливаете регион (т.е. Просто звоните setRegion). Это, кстати, нормальное отображение карты, чтобы отрегулировать диапазон по мере необходимости, чтобы соответствовать размерам карты или уровню масштабирования.

Ответ 2

Я использую следующий код для установки области:

if( centerLat > -89 && centerLat < 89 && centerLng > -179 && centerLng < 179 ){
    [self.mapView setRegion:region animated:YES];
}

Ответ 3

Я бы лучше предложил использовать CLLocationCoordinate2DIsValid

так что-то вроде

guard CLLocationCoordinate2DIsValid(centerLat) else {

     return
}