MKMapView NSInvalidArgumentException ios中的区域崩溃无效

时间:2013-03-05 09:30:43

标签: ios5 mapkit

我收到错误"由于未捕获的异常终止应用' 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 请帮助我。

2 个答案:

答案 0 :(得分:2)

我有类似的问题。在谷歌地图上绘制最大(纬度,长度)和最小值(纬度,长度),基本上将其抛出界外。 (我想这不会在iOS 6中的MapKit中优雅地处理)

目前,我所使用的修复程序(并且可以正常工作)是设置这些值 maxLat = -75,minLat = 75,maxLon = -175,minLon = 175

我的应用程序可以负担得起,因为它主要为一些人口密度最高的地区绘制地图。如果你的地图必须显示整个星球,包括北极/南极,那么我不确定我的黑客是否会有所帮助。

答案 1 :(得分:0)

我遇到了同样的问题,并调查了纬度和经度的最大值可以设置为:   minLat = -84 maxLat = 84   minLong = -179 maxLong = 179 否则你的位置将超出地图的范围,调用setRegion会导致崩溃。