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
}