我有一个应用程序,它在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
将地图很好地集中在中心:
然而,从伦敦到香港的类似路线是:
// North East: 219158701.181065, 117406780.189312
// South West: 133873691.426088, 77821652.051143
哪个不居中......保持在0,0
任何想法为什么?它已经困扰了我一段时间。我认为这可能与路线经度超过90度有关。
答案 0 :(得分:1)
这是IOS中的一个错误,已经在iOS 5.1中解决了
答案 1 :(得分:0)
您可以使用[_map setRegion:yourRegion animated:animated]
代替