使用MKMapView设置位置坐标时程序崩溃。 经度:
我的计划中的由于未捕获的异常'NSInvalidArgumentException'而终止应用,原因:'无效区域
<center:+112.57075000, +37.87049600 span:+0.05165163, +0.43945312>
'
是
MKCoordinateSpan span;
span.latitudeDelta = .05;
span.longitudeDelta = .02;
编码后:
self.mMKMapview.region = [self.mMKMapview regionThatFits:region];
如日志所示,范围更改为:+0.05165163,+ 0.43945312
任何人都可以帮忙,我已经在这里待了两天。
谢谢!
答案 0 :(得分:14)
问题是center
坐标:
+112.57075000,+ 37.87049600
纬度必须在-90到+90之间,因此+112.57075超出范围。
检查中心坐标的设置方式或数据是否向后。
此外,您不需要显式调用regionThatFits
,因为地图视图会在您正常设置区域时自动执行(即只调用setRegion
)。顺便说一下,地图视图根据需要调整跨度以适应地图视图尺寸或缩放级别是正常的。
答案 1 :(得分:2)
我使用以下代码设置区域:
if( centerLat > -89 && centerLat < 89 && centerLng > -179 && centerLng < 179 ){
[self.mapView setRegion:region animated:YES];
}
答案 2 :(得分:0)
我宁愿建议使用CLLocationCoordinate2DIsValid
类似
guard CLLocationCoordinate2DIsValid(centerLat) else {
return
}