我收到错误"由于未捕获的异常终止应用' NSInvalidArgumentException',原因:'无效区域' "在我的代码中。这是代码:
- (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 请帮助我。
答案 0 :(得分:2)
我有类似的问题。在谷歌地图上绘制最大(纬度,长度)和最小值(纬度,长度),基本上将其抛出界外。 (我想这不会在iOS 6中的MapKit中优雅地处理)
目前,我所使用的修复程序(并且可以正常工作)是设置这些值 maxLat = -75,minLat = 75,maxLon = -175,minLon = 175
我的应用程序可以负担得起,因为它主要为一些人口密度最高的地区绘制地图。如果你的地图必须显示整个星球,包括北极/南极,那么我不确定我的黑客是否会有所帮助。
答案 1 :(得分:0)
我遇到了同样的问题,并调查了纬度和经度的最大值可以设置为: minLat = -84 maxLat = 84 minLong = -179 maxLong = 179 否则你的位置将超出地图的范围,调用setRegion会导致崩溃。