У меня есть приложение, которое отображает маршрут полета в MKMapView. После того, как маршрут загружен, есть небольшой расчет, который находит северо-восточные и юго-западные точки. Затем, используя 2 точки, создается MKMapRect для увеличения масштаба до прямоугольника после вызова setVisibleMapRect. Однако это работает на небольших маршрутах, но не на маршрутах, обычно охватывающих более 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](https://i.stack.imgur.com/N5XEQ.jpg)
Однако по аналогичному маршруту из Лондона в Гонконг точки:
// North East: 219158701.181065, 117406780.189312
// South West: 133873691.426088, 77821652.051143
Который не центрируется ... остается на 0, 0
![London to Hong Kong](https://i.stack.imgur.com/Wp4bU.jpg)
Есть идеи почему ?? это давало мне покоя некоторое время. Я думаю, что это может быть связано с тем, что маршрут превышает 90 градусов долготы.