MKMapView setVisibleMapRect не устанавливается (иногда) - PullRequest
0 голосов
/ 05 февраля 2012

У меня есть приложение, которое отображает маршрут полета в 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

Однако по аналогичному маршруту из Лондона в Гонконг точки:

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

Который не центрируется ... остается на 0, 0

London to Hong Kong

Есть идеи почему ?? это давало мне покоя некоторое время. Я думаю, что это может быть связано с тем, что маршрут превышает 90 градусов долготы.

Ответы [ 2 ]

1 голос
/ 26 апреля 2012

Это ошибка в IOS, она была исправлена ​​в iOS 5.1

0 голосов
/ 14 августа 2013

Вы можете использовать [_map setRegion:yourRegion animated:animated] вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...