MKMapView setVisibleMapRect未设置(有时)

时间:2012-02-05 12:46:04

标签: ios mkmapview

我有一个应用程序,它在MKMapView上绘制航班路线。加载路线后,有一个小的计算,找到东北和西南点。然后使用2个点创建MKMapRect以在调用setVisibleMapRect之后缩放到rect。然而,这适用于小型路线,但不适用于通常超过90度的路线。

NSLog(@"North East: %f, %f", northEastPoint.x, northEastPoint.y);
NSLog(@"South West: %f, %f", southWestPoint.x, southWestPoint.y);

MKMapRect swRect = MKMapRectMake(southWestPoint.x, southWestPoint.y, 0, 0);
MKMapRect neRect = MKMapRectMake(northEastPoint.x, northEastPoint.y, 0, 0); 
MKMapRect zoomRect = MKMapRectUnion(neRect, swRect);
[_map setVisibleMapRect:zoomRect animated:NO];

从芬兰到香港的路线是:

// North East: 219158701.181065, 117406780.189312
// South West: 152831738.959918, 77478198.921545

将地图很好地集中在中心:

Finland to Hong Kong

然而,从伦敦到香港的类似路线是:

// North East: 219158701.181065, 117406780.189312
// South West: 133873691.426088, 77821652.051143

哪个不居中......保持在0,0

London to Hong Kong

任何想法为什么?它已经困扰了我一段时间。我认为这可能与路线经度超过90度有关。

2 个答案:

答案 0 :(得分:1)

这是IOS中的一个错误,已经在iOS 5.1中解决了

答案 1 :(得分:0)

您可以使用[_map setRegion:yourRegion animated:animated]代替