2012-02-05 2 views
0

У меня есть приложение, которое отображает маршрут полета на MKMapView. После того, как маршрут загружен, есть небольшой расчет, который находит точки на северо-востоке и юго-западе. Затем, используя 2 точки, создается MKMapRect, чтобы увеличить прямоугольник, после вызова setVisibleMapRect. Однако это работает на небольших маршрутах, но не на маршрутах, которые обычно занимают более 90 градусов.MKMapView setVisibleMapRect не устанавливается (иногда)

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 градусов долготы.

+0

в IOS карте мира не является непрерывным, как и в случае Android. (В Android, если вы полностью уменьшить вы 2-3 карты бок о бок, и в этом случае ваш код правильно установит область отображения). в iOS, например, вы можете попытаться настроить центр карты на Австралию, полностью изменив масштаб, и вы увидите тот же регион, что и во втором случае. Чтобы установить центр карты на Австралию, MKMapview должен иметь другую карту на правой стороне. Так что ничего плохого в коде, это то, как ведет себя MKMapView. – chatur

+0

@chatur, Итак, что я могу сделать, чтобы исправить мою проблему? – craig1231

+0

Насколько я знаю, это невозможно исправить. – chatur

ответ

1

Это была ошибка в IOS, это была решена в прошивкой 5.1

0

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

Смежные вопросы